Джанго десериализация - PullRequest
2 голосов
/ 18 мая 2010

Я получаю следующую ошибку:

Traceback (последний последний вызов):
Файл "../tests.py", строка 92, в test_single_search

для return_obj в serializers.deserialize ("json", response, sure_ascii = False):
Файл "/Library/Python/2.6/site-packages/django/core/serializers/json.py", строка 38, в десериализаторе для объекта в PythonDeserializer (simplejson.load (поток), ** параметры): файл "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/json/init.py", линия 264, в нагрузке возврат загрузки (fp.read (), AttributeError: объект 'HttpResponse' не имеет атрибута "чтение"

В views.py сериализация работает правильно:

resultsjson = serializers.serialize("json", results, ensure_ascii=False)
return HttpResponse(resultsjson, mimetype = 'application/json')

Однако, когда я пытаюсь обработать результат в моем вызывающем методе в test.py:

response = self.client.get("/path/?query=testValue")
for return_obj in serializers.deserialize("json", response, ensure_ascii=False):
      print return_obj

Я получаю вышеуказанную ошибку. Кто-нибудь сталкивался с такой же ошибкой. Я использую Django 1.2 (последняя версия от svn), и он, кажется, использует встроенный сериализатор simplejson.

1 Ответ

9 голосов
/ 18 мая 2010

Вам нужно использовать response.content, а не просто response при звонке на deserialize. Объект ответа является экземпляром HttpResponse, но имеет атрибут content, который в данном случае содержит фактический JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...