如何使用django-rest-framework序列化ValuesQuerySet?
我想为一个复杂的查询建立一个API。
看过相关文档后,我更倾向于使用django-rest-framework,因为它可以自动处理ValuesQuerySet的数据格式化和分页,这样我就不用自己去做这些了。
不过,我只找到关于默认模型QuerySet的文档,却没有找到关于如何格式化ValuesQuerySet(当模型不明确时)的相关资料。我该怎么做呢?
我看到过这个回答,但那个解决方案对我来说不适用。
以下是代码,没有使用django-rest-framework:
@login_required
def category_tallies(request):
my_friends = FacebookUser.objects.filter(user_id=request.user.id)
cat_tallies = FacebookLike.objects.filter(id__in=my_friends).values('category').annotate(Count('category')).order_by('-category__count')
return HttpResponse(
json.dumps(cat_tallies),
mimetype='application/json')
1 个回答
1
试试这个:
from django.core import serializers
cat_tallies = FacebookLike.objects.filter(id__in=my_friends).annotate(count=Count('category')).order_by('-count')
json_dump = serializers.serialize('json', cat_tallies, fields=('category','count'))