问题
I have a tastypie resource for a model. I also have a view which comes up with a queryset which needs to be serialised and sent to client. I am looking for a way to let tastypie resource handle the serialisation and dehydration of the queryset.
I see that I can pass a single object to
[Resource.build_bundle(self, obj=None, data=None, request=None)][1]
to create a bundle and then pass the bundle to
[Resource.full_dehydrate(self, bundle)][2]
and finally call
[Resource.serialize(self, request, data, format, options=None)][3]
on the dehydrated data.
But I want to convert full queryset to json and not just a single object. Maybe all I need is a way to convert full queryset to bundle.
Any help is appreciated!
回答1:
This was bugging me too, but I think I found the answer after looking through tastypie's code on github.
This will make a bunch of bundles.
bundles = [Resource.build_bundle(obj=q, request=request) for q in Queryset]
This will perform the dehydration.
data = [Resource.full_dehydrate(bundle) for bundle in bundles]
This will perform the serialization.
Resource.serialize(None, data, 'application/json'),
来源:https://stackoverflow.com/questions/13565975/convert-a-queryset-to-json-using-tastypie-resource