gpt4 book ai didi

django - 'HttpResponse' 没有属性 '_get_content

转载 作者:行者123 更新时间:2023-12-04 20:46:51 27 4
gpt4 key购买 nike

我正在使用 Django 1.5.1 和 Piston 为 MongoDB 数据库提供休息支持。

尝试测试其余 url 以检索数据时,出现以下错误。

type object 'HttpResponse' has no attribute '_get_content'
Request Method: GET
Request URL: http://127.0.0.1:8000/annotation/search?limit=20&uri=/document
Django Version: 1.5.1
Exception Type: AttributeError
Exception Value:
type object 'HttpResponse' has no attribute '_get_content'
Exception Location: /home/tank/sites/python/env.example/lib/python2.7/site-packages/piston/utils.py in HttpResponseWrapper, line 72
Python Executable: /home/tank/sites/python/env.example/bin/python
Python Version: 2.7.4

问题是在活塞代码中产生的,不知道是什么原因。这是完整的追溯
Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/annotations/search?limit=20&uri=/templates

Django Version: 1.5.1
Python Version: 2.7.4
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'django.contrib.flatpages',
'app.modules.members',
'app.modules.cms',
'app.modules.annotator',
'debug_toolbar')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware')


Traceback:
File "/home/tank/sites/python/env.example/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
115. response = callback(request, *callback_args, **callback_kwargs)
File "/home/tank/sites/python/env.example/lib/python2.7/site-packages/django/views/decorators/vary.py" in inner_func
19. response = func(*args, **kwargs)
File "/home/tank/sites/python/env.example/lib/python2.7/site-packages/piston/resource.py" in __call__
166. result = self.error_handler(e, request, meth, em_format)
File "/home/tank/sites/python/env.example/lib/python2.7/site-packages/piston/resource.py" in error_handler
257. result = rc.BAD_REQUEST
File "/home/tank/sites/python/env.example/lib/python2.7/site-packages/piston/utils.py" in __getattr__
51. class HttpResponseWrapper(HttpResponse):
File "/home/tank/sites/python/env.example/lib/python2.7/site-packages/piston/utils.py" in HttpResponseWrapper
72. content = property(HttpResponse._get_content, _set_content)

Exception Type: AttributeError at /annotations/search
Exception Value: type object 'HttpResponse' has no attribute '_get_content'

/谢谢

'HttpResponseWrapper' 对象的新错误跟踪没有属性 '_is_string' :
Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/annotations/search?limit=20&uri=

Django Version: 1.5.1
Python Version: 2.7.4
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'django.contrib.flatpages',
'app.modules.members',
'app.modules.cms',
'app.modules.annotator',
'debug_toolbar')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware')


Traceback:
File "/home/tank/sites/python/env.example/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
115. response = callback(request, *callback_args, **callback_kwargs)
File "/home/tank/sites/python/env.example/lib/python2.7/site-packages/django/views/decorators/vary.py" in inner_func
19. response = func(*args, **kwargs)
File "/home/tank/sites/python/env.example/lib/python2.7/site-packages/piston/resource.py" in __call__
184. if isinstance(result, HttpResponse) and not result._is_string:

Exception Type: AttributeError at /annotations/search
Exception Value: 'HttpResponseWrapper' object has no attribute '_is_string'

最佳答案

在 Django 1.5 中,这段代码:

def _get_content(self):
# do some stuff

def _set_content(self):
# do some stuff

content = property(_get_content, _set_content)

改为:
@property
def content(self):
# do some stuff

@content.setter
def content(self, value):
# do some stuff

所以,Django 1.5 没有 _get_content功能。你应该换 HttpResponseWrapper在活塞/utils.py 到这样的事情:
class HttpResponseWrapper(HttpResponse):
"""
Wrap HttpResponse and make sure that the internal
_is_string/_base_content_is_iter flag is updated when the
_set_content method (via the content property) is called
"""

def _set_content(self, content):
"""
Set the _container and _is_string /
_base_content_is_iter properties based on the type of
the value parameter. This logic is in the construtor
for HttpResponse, but doesn't get repeated when
setting HttpResponse.content although this bug report
(feature request) suggests that it should:
http://code.djangoproject.com/ticket/9403
"""
is_string = False
if not isinstance(content, basestring) and hasattr(content, '__iter__'):
self._container = content
else:
self._container = [content]
is_string = True
if django.VERSION >= (1, 4):
self._base_content_is_iter = not is_string
else:
self._is_string = is_string

try:
# Django versoin is older than 1.5

content = property(HttpResponse._get_content, _set_content)

except:
# Django version 1.5

@HttpResponse.content.setter
def content(self, content):
self._set_content(content)

让我知道它是否有效,我会将其提交给 piston代码。

关于第二个问题:也许,你的版本是旧的。这个问题已经在 this 中解决了犯罪。

关于django - 'HttpResponse' 没有属性 '_get_content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16294518/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com