我需要为问题设置一些标签。在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
/...
由于
答案 0 :(得分:3)
使用ManyToMany
关系。
由于一个Question
可以包含多个标记,因此一个Tag
可以存在多个问题。
class Tag(models.Model):
tag_text = models.CharField(max_length = 200)
class Question(models.Model):
tag = models.ManyToManyField(Tag)
相关查询:
将标签添加到问题实例中,
quest_instance.tags.add(your_tag_instance)
要获取所有问题标签,
quest_instance.tags.all()
获取特定标记的所有问题,
tag_inst.question_set.all()
注意:相对查询可能需要进行少量更新。