使用tastypie资源将查询集转换为json

shr*_*eyj 8 django tastypie

我有一个模型的tastypie资源.我还有一个视图,它提供了一个需要序列化并发送到客户端的查询集.我正在寻找一种方法让tastypie资源处理查询集的序列化和脱水.

我看到我可以传递一个对象

[Resource.build_bundle(self, obj=None, data=None, request=None)][1]
Run Code Online (Sandbox Code Playgroud)

创建一个包,然后将包传递给

[Resource.full_dehydrate(self, bundle)][2]
Run Code Online (Sandbox Code Playgroud)

最后打电话

[Resource.serialize(self, request, data, format, options=None)][3]
Run Code Online (Sandbox Code Playgroud)

关于脱水数据.

但我想将完整的查询集转换为json,而不仅仅是单个对象.也许我需要的是一种将完整查询集转换为bundle的方法.

任何帮助表示赞赏!

小智 10

这也困扰着我,但我想在找到github上的tastypie代码之后我找到了答案.

这将成为一堆捆绑.

bundles = [Resource.build_bundle(obj=q, request=request) for q in Queryset]
Run Code Online (Sandbox Code Playgroud)

这将进行脱水.

data = [Resource.full_dehydrate(bundle) for bundle in bundles]
Run Code Online (Sandbox Code Playgroud)

这将执行序列化.

Resource.serialize(None, data, 'application/json'),
Run Code Online (Sandbox Code Playgroud)