【问题标题】:How to serialize a ValuesQuerySet using django-rest-framework?如何使用 django-rest-framework 序列化 ValuesQuerySet?
【发布时间】:2014-08-12 18:07:45
【问题描述】:

我想为复杂的查询构建一个 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')

【问题讨论】:

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


    【解决方案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'))
    

    【讨论】:

    • serializers.serialize 可以分页吗?
    • 所有分页器需要的是一个可迭代的。所以,是的,你可以
    猜你喜欢
    • 2014-06-28
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    相关资源
    最近更新 更多