如何使用django-rest-framework序列化ValuesQuerySet?

时间:2014-06-22 16:44:20

标签: python django rest serialization django-rest-framework

我想为复杂查询构建API。

阅读完文档后,我更喜欢使用django-rest-framework,它将自动为ValuesQuerySet提供序列化和分页,而不是自己进行序列化。

但是,我只找到了默认模型QuerySet的文档,并没有找到任何序列化ValuesQuerySet的文档(当模型未知时)。我怎么能这样做?

我见过this answer,但解决方案不适用于我的情况。

这是代码,不使用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 个答案:

答案 0 :(得分: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'))