gpt4 book ai didi

django - django 中过滤图书列表的每位作者的图书计数

转载 作者:行者123 更新时间:2023-12-04 06:26:59 25 4
gpt4 key购买 nike

简短的问题。
我有两个模型:

class Author(models.Model):
name = models.CharField(max_length=250)

class Book(models.Model):
title = models.CharField(max_length=250)
author = models.ManyToManyField(Author)

一种观点:
def filter_books(request):
book_list = Book.objects.filter(...)

如何在模板中显示下一个内容:
Authors in selected books:
Author1: book_count
Author2: book_count
...

最佳答案

让我们逐步构建查询。

首先,获取在book_list中拥有一本书的作者.

authors = Author.objects.filter(book__in=book_list)

诀窍是意识到作者将在 book_list 中为每本书出现一次。 .然后我们可以使用 annotate 来统计作者出现的次数。
# remember to import Count!
from django.db.models import Count

authors = Author.objects.filter(book__in=book_list
).annotate(num_books=Count('id')

在模板中,您可以执行以下操作:
Authors in selected books:
{% for author in authors %}
{{ author.name }}: {{ author.num_books }}<br />
{% endfor %}

关于django - django 中过滤图书列表的每位作者的图书计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5927251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com