假設你有兩個模型:Post
和Category
。每個Post
有一個category_id
。在沒有循環引用的Django中雙向查詢
獲取帖子的類別很簡單:post.category
。如果你想獲得某個類別的所有帖子怎麼辦?我想你會做
def posts(self):
return Post.filter(category__pk=self.id)
但如果Post
模型和Category
模型在不同的文件是什麼?由於Post
和Category
現在需要彼此,您最終會得到循環引用。
也許你說的解決辦法是把Post
和Category
放到同一個文件中。但是,如果你的應用程序有50個不同的模型,其中很多很大,都在單獨的文件?你是否應該將Post
和Category
合併爲一個文件並將所有其他文件分開?你應該將所有50個模型合併成一個巨大的文件嗎?
,我希望能找到一兩件事情:
- 回答這個問題,不涉及合併的文件
- 好,用於分組模式與一個相同的文件邏輯上的理由另一個。我所有的模特都有一定程度的關聯,所以在分組進行的時候,哪裏畫線?如果你用外鍵畫線,我所有的模型都會在同一個文件中。
「你最終會得到循環引用」。這個假設是完全錯誤的。你爲什麼這麼說? – 2011-02-04 17:45:07
我試過了,發生了什麼事。 – 2011-02-04 17:50:08