我有两张桌子:页面和问题。 由于问题可以在多个页面上,并且页面有多个问题,因此这可以作为多对多关系。 到目前为止没有问题(我也遵循了这个例子https://docs.djangoproject.com/en/dev/topics/db/examples/many_to_many/)
让我们说概念表结构如下所示:
网页:id_page(int)的
问题:id_question(int),text(string)
pageQuestions :id_page(int),id_question(int),ordinal_number(int) - 用于beak多对多的关系
我的问题是“ordinal_number”字段。这应该是在页面上排序问题。 由于每个页面上的问题都可以在不同的地方,因此该字段不属于问题表。
问:我怎么能在django模型中声明这个字段,因为我不应该使用pageQuestions表?答案 0 :(得分:3)
您绝对可以使用intermediary table pageQuestions
来实现您的目标。
class Page:
#attributes
class Questions:
#attributes
pages = models.ManyToManyField(through = 'PageQuestions', ...)
class PageQuestions:
page = models.ForeignKey(Page)
question = models.ForeignKey(Question)
ordinal_number = models.IntegerField()
class Meta:
unique_together = (('page', 'question')) #optional
为了完整起见,添加了您在ManyToMany relationships
上找到的博客