0

PagesQuestionsの 2 つのテーブルがあります。質問は複数のページにある可能性があり、ページには複数の質問があるため、これは多対多の関係とみなされます。これまでのところ問題はありません (この例にも従いました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」フィールドです。これは、ページ上の質問を順序付けることになっています。すべてのページで質問が別の場所にある可能性があるため、このフィールドは質問テーブルに属しません。

Q: 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 に答える