我正在为查询集中的每个项目生成聚合:
def get_queryset(self):
from django.db.models import Count
queryset = Book.objects.annotate(Count('authors'))
return queryset
但我没有得到JSON响应中的计数.
提前谢谢你.
我正在为查询集中的每个项目生成聚合:
def get_queryset(self):
from django.db.models import Count
queryset = Book.objects.annotate(Count('authors'))
return queryset
但我没有得到JSON响应中的计数.
提前谢谢你.
从get_queryset返回的queryset提供将通过序列化程序处理的内容列表,序列化程序控制对象的表示方式.try 在图书序列化程序中添加其他字段,如:
author_count = serializers.IntegerField(
source='author_set.count',
read_only=True
)
Edit:正如其他人所说,对于返回许多结果的情况,这不是添加计数的最有效方式,因为它将命中每个实例的数据库.有关更有效的解决方案,请参阅@josé给出的答案.