如何将模型的多个记录连接到Django中的另一个模型?

时间:2016-11-28 07:05:28

标签: python django django-models

我需要为问题设置一些标签。在Question模型中,我使用Tag作为ForeignKey -

class Tag(models.Model):
    tag_text = models.CharField(max_length = 200)

class Question(models.Model):
    tag = models.ForeignKey(Tag, on_delete = models.CASCADE)

我在后端看到的Question可以选择一个Tag,但我想要一个Question可以选择多个Tags

我很困惑它会是什么 - ManyToMany / OneToMany /...

由于

1 个答案:

答案 0 :(得分:3)

使用ManyToMany关系。

由于一个Question可以包含多个标记,因此一个Tag可以存在多个问题。

class Tag(models.Model):
    tag_text = models.CharField(max_length = 200)

class Question(models.Model):
    tag = models.ManyToManyField(Tag)

相关查询:

  1. 将标签添加到问题实例中,

    quest_instance.tags.add(your_tag_instance)
    
  2. 要获取所有问题标签,

    quest_instance.tags.all()
    
  3. 获取特定标记的所有问题,

    tag_inst.question_set.all()
    
  4. 注意:相对查询可能需要进行少量更新。