How to serialize Django queryset.values() into json?

前端 未结 5 397
情话喂你
情话喂你 2020-12-13 13:31

I have a model that has many fields, however for this problem I only need 3 of those fields. When I try to serialize a .values set I get an exception:

5条回答
  •  臣服心动
    2020-12-13 14:02

    As other people have said, Django's serializers can't handle a ValuesQuerySet. However, you can serialize by using a standard json.dumps() and transforming your ValuesQuerySet to a list by using list(). If your set includes Django fields such as Decimals, you will need to pass in DjangoJSONEncoder. Thus:

    import json
    from django.core.serializers.json import DjangoJSONEncoder
    
    queryset = myModel.objects.filter(foo_icontains=bar).values('f1', 'f2', 'f3')
    serialized_q = json.dumps(list(queryset), cls=DjangoJSONEncoder)
    

提交回复
热议问题