假设你有两个模型,一个是Author,另一个是Book,并且Book模型有一个外键指向Author模型。现在,你想要在每个作者上获取其写的书籍数量。
from django.db.models import Count
# 在Author模型上进行连接和聚合
authors_with_book_count = Author.objects.annotate(book_count=Count('book'))
# 获取结果
for author in authors_with_book_count:
print(f"Author: {author.name}, Book Count: {author.book_count}")
在这个例子中,Count('book')部分表示对Author模型的每个条目进行连接(join),并计算每个作者的书籍数量。book_count是一个新的注释字段,包含每个作者的书籍数量。
这样的查询将在SQL级别上执行连接和聚合操作,然后在Django模型中提供了一个新的字段,包含了聚合的结果。
你可以根据实际需求自定义连接和聚合的方式,以适应你的模型之间的关系。这是一个强大的工具,使你能够执行更复杂的数据库查询。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7152/Django