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)