2010-01-20 214 views
2

我是Django的新手,我仍然試圖打破舊的PHP習慣。以下是兩種模式。爲了使事情混淆他們生活在不同的文件中,在不同的應用程序...反向外鍵查找

#article.models 
from someapp.author.models import Author 

class Article(model.Model): 
    ... 
    author = models.ForeignKey(Author) 


# author.models 
class Author(model.Model): 
    ... 

從這個模式我希望能夠得到由作者的所有文章。喜歡的東西:
作者=作者(PK = 1)
文章= author.articles

我的第一反應是編寫基於作者ID中的文章模型做了一個簡單的查找方法。由於單獨的文件,這裏發生的是一個永無止境的包含循環。文章需要作者導入用於ForeignKey和Author需要的文章包含用於模型查找。這感覺哈克和錯誤。我寧願以正確的方式去做......所以,Django的方式是什麼?

回答

3

我認爲這是你問...

class Article(model.Model): 
    ... 
    author = models.ForeignKey(Author, related_name='articles') 

在一個側面說明什麼,默認情況下,在不改變任何東西你有,我認爲這會爲你工作...

article.author_set 

但維持article.authors語法,你上面提到,您可以用related_name指定你自己。

+0

哇。我真的過分複雜並誤解了文檔。正是我在找什麼。謝謝。 – CrashRoX 2010-01-20 05:56:34

+0

@CrashRoX:如果它對你有幫助,你應該接受這個答案。 – 2010-02-05 01:41:32