0

我有两个表:PagesQuestions。由于一个问题可以在多个页面上,并且一个页面有多个问题,这符合多对多关系的条件。到目前为止没有问题(我也按照这个例子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) - 用于处理多对多关系

我的问题是“ordinal_number”字段。这应该在页面上排序问题。由于每个页面上的问题都可能位于不同的位置,因此该字段不属于问题表。

问:由于我不应该使用 pageQuestions 表,如何在我的 django 模型中声明此字段?

4

1 回答 1

3

您绝对可以使用中间表 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 关系上找到的博客

于 2013-08-20T14:46:13.143 回答