我试图弄清楚如何计算作者写的书数。书籍模型用作者模型建立了许多领域。我不知道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对象而不是文本。
由于
答案 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