2011-11-29 110 views
2

我有一個單獨的對象我想要序列:序列化單個對象?

from django.core import serializers 

... 
    return HttpResponse(serializers.serialize("json", get_object_or_404(Animal, pk=1)), mimetype="application/json") 

這將引發「不可迭代」的錯誤,因爲它似乎預計,第二個參數應該是迭代。我如何將單個對象序列化爲JSON?

回答

3

您可以隨時將所需的對象包裝到列表中,並只取回第一個元素。你的第二個參數可以是:

[get_object_or_404(Animal, pk=1),] 

,當你反序列化,

my_obj = deserialize()[0] 
2

爲了使用serializers.serialize您需要傳遞一個可迭代的(queryset)。 get_object_or_404返回單個對象。在這種情況下,您需要一個包含該特定對象的查詢集(使用pk)。 filter是你需要的。嘗試類似:

return HttpResponse(serializers.serialize("json", Animal.objects.filter(pk=1)), mimetype="application/json")