从Django的相关模型中获取所有项目

时间:2017-03-01 17:53:31

标签: python django

我有两个相关的模型:

class Author(models.Model):
    ----

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

我有一个类作者的实例。我如何获得作者的所有文章?如:

articles = author.article_set.getAllArticlesFromAuthor()

我知道它可以从查询中获取,但我想知道Django是否存在一个简短的方法

2 个答案:

答案 0 :(得分:1)

只需这样做,您也可以在Author模型中处理它:

class Author(models.Model):

    def get_articles(self):
        return Article.objects.filter(author__pk=self.pk)

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

返回特定作者的文章QuerySet。

Author.objects.get(pk=1).get_articles() 

答案 1 :(得分:1)

您可以创建属性

class Author(models.Model):
    # model fields

    @property
    def articles(self):
        return self.article_set.all()

所以你可以像

一样使用它
author = Author.objects.get(name="Author's Name")   # get Author
articles = author.articles                          # get articles by author