序列化单个对象?
问题描述:
我有一个单独的对象我想要序列:序列化单个对象?
from django.core import serializers
...
return HttpResponse(serializers.serialize("json", get_object_or_404(Animal, pk=1)), mimetype="application/json")
这将引发“不可迭代”的错误,因为它似乎预计,第二个参数应该是迭代。我如何将单个对象序列化为JSON?
答
您可以随时将所需的对象包装到列表中,并只取回第一个元素。你的第二个参数可以是:
[get_object_or_404(Animal, pk=1),]
,当你反序列化,
my_obj = deserialize()[0]
答
为了使用serializers.serialize
您需要传递一个可迭代的(queryset)。 get_object_or_404
返回单个对象。在这种情况下,您需要一个包含该特定对象的查询集(使用pk
)。 filter
是你需要的。尝试类似:
return HttpResponse(serializers.serialize("json", Animal.objects.filter(pk=1)), mimetype="application/json")