Django Rest Framework을 사용하여 API를 빌드하고 개발 컴퓨터에서 구현했습니다. 오늘 빨리 배포하고 싶었는데 예상했던 것보다 훨씬 오류가 많았습니다. 나는 의존성을 다시 설치하고, 장고를 다시 설치하고, 버그를 사냥하면서 시간을 보냈지 만,이 최신 기사는 저와 구글을 물리 쳤습니다.Python에서 이상한 오류가 발생했습니다. 장고 Rest 프레임 워크에서 호출 된 Urlobject
개발 컴퓨터에서 프레임 워크의 뷰 중 하나를 호출하면 올바른 응답 (정적 파일을 제외하고 나중에 처리하겠습니다.)이 표시됩니다. 그러나 배포 컴퓨터에서이 오류가 발생합니다.
'SplitResult' object has no attribute '_replace'
역 추적 나머지 프레임 워크에서 템플릿 태그를 통해 이동하지만, 오류가이 방법에 urlobject에 던져 질 것 같다
def __replace(self, **replace):
"""Replace a field in the ``urlparse.SplitResult`` for this URL."""
return type(self)(urlparse.urlunsplit(
urlparse.urlsplit(self)._replace(**replace)))
내 개발 시스템에서이를 재현 할 수없는, 그리고 anywh이 오류에 대한 참조를 찾을 수 없습니다. 오히려. 내가 장고 1.2, 1.3, 1.4를 사용하여 배포 서버에서 시도한 경우를 대비하여 오류가 장고 자체와 관련이없는 것으로 보입니다.
여기에 전체 역 추적입니다 :
Django Version: 1.3.1
Python Version: 2.5.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'char',
'djangorestframework']
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')
Traceback:
File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.5/site-packages/django/views/generic/base.py" in view
47. return self.dispatch(request, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/django/views/decorators/csrf.py" in wrapped_view
39. resp = view_func(*args, **kwargs)
File "/usr/lib/python2.5/site-packages/django/views/decorators/csrf.py" in wrapped_view
52. return view_func(*args, **kwargs)
File "/home/wfrp/wfrp-django/DjangoWfrp/external apps/django-rest-framework/djangorestframework/views.py" in dispatch
243. return self.final(request, response, *args, **kwargs)
File "/home/wfrp/wfrp-django/DjangoWfrp/external apps/django-rest-framework/djangorestframework/views.py" in final
196. return self.render(response)
File "/home/wfrp/wfrp-django/DjangoWfrp/external apps/django-rest-framework/djangorestframework/mixins.py" in render
251. content = renderer.render(response.cleaned_content, media_type)
File "/home/wfrp/wfrp-django/DjangoWfrp/external apps/django-rest-framework/djangorestframework/renderers.py" in render
351. ret = template.render(context)
File "/usr/lib/python2.5/site-packages/django/template/base.py" in render
123. return self._render(context)
File "/usr/lib/python2.5/site-packages/django/template/base.py" in _render
117. return self.nodelist.render(context)
File "/usr/lib/python2.5/site-packages/django/template/base.py" in render
744. bits.append(self.render_node(node, context))
File "/usr/lib/python2.5/site-packages/django/template/base.py" in render_node
757. return node.render(context)
File "/usr/lib/python2.5/site-packages/django/template/loader_tags.py" in render
127. return compiled_parent._render(context)
File "/usr/lib/python2.5/site-packages/django/template/base.py" in _render
117. return self.nodelist.render(context)
File "/usr/lib/python2.5/site-packages/django/template/base.py" in render
744. bits.append(self.render_node(node, context))
File "/usr/lib/python2.5/site-packages/django/template/base.py" in render_node
757. return node.render(context)
File "/usr/lib/python2.5/site-packages/django/template/defaulttags.py" in render
311. return self.nodelist_true.render(context)
File "/usr/lib/python2.5/site-packages/django/template/base.py" in render
744. bits.append(self.render_node(node, context))
File "/usr/lib/python2.5/site-packages/django/template/base.py" in render_node
757. return node.render(context)
File "/usr/lib/python2.5/site-packages/django/template/defaulttags.py" in render
227. nodelist.append(node.render(context))
File "/usr/lib/python2.5/site-packages/django/template/defaulttags.py" in render
500. output = self.nodelist.render(context)
File "/usr/lib/python2.5/site-packages/django/template/base.py" in render
744. bits.append(self.render_node(node, context))
File "/usr/lib/python2.5/site-packages/django/template/base.py" in render_node
757. return node.render(context)
File "/usr/lib/python2.5/site-packages/django/template/base.py" in render
792. output = self.filter_expression.resolve(context)
File "/usr/lib/python2.5/site-packages/django/template/base.py" in resolve
536. new_obj = func(obj, *arg_vals)
File "/home/wfrp/wfrp-django/DjangoWfrp/external apps/django-rest-framework/djangorestframework/templatetags/add_query_param.py" in add_query_param
7. return unicode(URLObject(url).with_query(param))
File "/home/wfrp/wfrp-django/DjangoWfrp/external apps/urlobject/lib/urlobject/urlobject.py" in with_query
117. return self.__replace(query=query)
File "/home/wfrp/wfrp-django/DjangoWfrp/external apps/urlobject/lib/urlobject/urlobject.py" in __replace
181. urlparse.urlsplit(self)._replace(**replace)))
Exception Type: AttributeError at /api/
Exception Value: 'SplitResult' object has no attribute '_replace'
이 스택 오버플로 내 처음이다 - 도움을 주셔서 감사합니다.
내 생각을보고있는 오류입니다 파이썬 버전 불일치를 설명 할 것
_replace
방법을 가지고 있지 않습니다tuple
의 서브 클래스이었다 생각합니다. 내 2.7 사실'_replace'를 가지고 있지만 그것에 문서를 찾을 수 없습니다. –