Django:引用已在另一个模型中定义的manytomany字段

时间:2011-11-20 23:48:37

标签: python django models

我试图弄清楚如何计算作者写的书数。书籍模型用作者模型建立了许多领域。我不知道google之类的东西怎么样,我认为这样做很简单,但我甚至不知道如何开始。

这里是精简代码:

class Author(models.Model):
    first_name = models.CharField()
    last_name = models.CharField()

    def books(self):
        """Return a list of comma separated list of books by the author"""
        pass

class Book(models.Model):
    title = models.CharField()
    authors = models.ManyToManyField(Author)

也许我可以通过过滤器查询来获取特定作者的书籍,但它看起来不像是django的方式吗?我也不确定如何将过滤函数传递给python对象而不是文本。

由于

1 个答案:

答案 0 :(得分:4)

当您定义foreignkey或manytomany字段时,django会为您设置反向关系,在您的情况下为book_set。所以像:

def books(self):
    books = self.book_set.all()
    return ', '.join([book.title for book in books])

请参阅文档中的related objects

相关问题