Сериализация одного объекта? - PullRequest
2 голосов
/ 29 ноября 2011

У меня есть один объект, который я хочу сериализовать:

from django.core import serializers

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

Это выдает ошибку "Not Iterable", поскольку кажется, что второй параметр должен быть итеративным.Как я могу сериализовать один объект в JSON?

Ответы [ 2 ]

3 голосов
/ 29 ноября 2011

Вы всегда можете обернуть нужный объект в список и вернуть только первый элемент. Ваш второй аргумент может быть:

[get_object_or_404(Animal, pk=1),]

и при десериализации

my_obj = deserialize()[0]
2 голосов
/ 29 ноября 2011

Чтобы использовать serializers.serialize, вам нужно передать итерацию (queryset).get_object_or_404 возвращает один объект.В этом случае вам нужен набор запросов с этим конкретным объектом (используя pk).filter это то, что вам нужно.Попробуйте что-то вроде:

return HttpResponse(serializers.serialize("json", Animal.objects.filter(pk=1)), mimetype="application/json")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...