此问题与this other problem有关,但我希望使用现有的Tastypie资源将单个模型实例转换为JSON。
答案 0 :(得分:0)
感谢@grimygoop的提示,我设法创建了一种方法,该方法可以使用关联的Tastypie资源将任何Django模型实例序列化为JSON。该过程是这样工作的...
def res_serialize(request, resource, obj):
data = resource.full_dehydrate(resource.build_bundle(obj=obj, request=request))
return resource.serialize(None, data, 'application/json')
要使用此功能,您必须已经定义了Resource类,并且还必须具有一个请求对象,此功能才能按预期工作。然后,您将像这样执行序列化:
res_serialize(request,ClientResource(),client)
请注意以上调用中的ClientResource()
-我们必须传递Resource实例,而不仅仅是类引用。因此,在上面的示例中,对象client
通过关联的资源类被序列化为JSON。例如,这可以在希望返回对象的序列化实例的自定义视图中提供帮助。
此外,对此稍加修改即可处理查询集,而不是单个对象。