Django反序列化

her*_*yme 2 python django serialization

我收到以下错误:

回溯(最近一次调用最后一次):
在test_single_search中输入"../tests.py",第92行

对于serializers.deserialize中的return_obj("json",response,ensure_ascii = False):
文件"/Library/Python/2.6/site-packages/django/core/serializers/json.py",第38行,在反序列化器中为obj in PythonDeserializer(simplejson.load(流),**选项):文件"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/json/ INIT py"为,线264,在负荷返回load(fp.read(),AttributeError:'HttpResponse'对象没有属性'read'

在views.py中,序列化正常工作:

resultsjson = serializers.serialize("json", results, ensure_ascii=False)
return HttpResponse(resultsjson, mimetype = 'application/json')
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在test.py中的调用方法中处理结果时:

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

我得到了上述错误.有没有人遇到同样的错误.我正在使用Django 1.2(来自svn的最新版本),它似乎使用内置的simplejson序列化器.

Dan*_*man 9

你需要使用response.content而不仅仅是response在你的电话中deserialize.响应对象是HttpResponse的一个实例,但其属性content在这种情况下包含实际的JSON.