2010-01-20 98 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