Django列包含对象列表

2024-05-20 11:55:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种方法来将另一个表中的行存储到一个表中。我有一个名为Languages的模型和一个名为Freelancers的模型。我想要的是存储自由职业者使用的语言

我认为如果有关系Many to One,就只有language = models.ForeignKey(Languages)。问题是,一个自由职业者可能懂多种语言

以下是这些模型:

class Languages(models.Model):
    language = models.CharField(max_length=100)
    language_shortcut = models.CharField(max_length=3)
    price_per_word = models.FloatField()

class Freelancers(models.Model):
    nickname = models.CharField(max_length=30)
    # languages = models.ForeignKey(Languages) # This is incorrect
    # languages = list(models.ForeignKey....) # I'm looking for something like this...

因为我是刚到Django的,我很感激你的建议


Tags: 方法模型语言modelmodelslanguagelengthmax
1条回答
网友
1楼 · 发布于 2024-05-20 11:55:10

这正是多对多关系的用例,在Django中,多对多关系由ManyToManyField表示:

languages = models.ManyToManyField(Languages)

现在对于每个自由职业者你都可以做freelancer.languages.all(),对于每种语言你都可以做language.freelancers_set.all()

请注意,在Django中,通常对模型使用单数名称:自由职业者和语言,因为每个实例都引用一个实例

相关问题 更多 >