Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert a queryset to json using tastypie resource

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!

like image 236
shreyj Avatar asked Nov 26 '12 13:11

shreyj


1 Answers

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'),
like image 113
grimygoop Avatar answered Sep 21 '22 21:09

grimygoop