2017-10-18 5 views
0

저는 장고와 파이썬에 대한 새로운 소식을 접하며 장고 나머지 프레임 워크를 프로젝트에 통합하는 데 어려움을 겪고 있습니다.가져 오기 오류 : django.core.handlers.wsgi에서 가져 오기 STATUS_CODE_TEXT

내가 순서대로 내 모델, 시리얼 및 API를 가지고, 내가 생각하지만 서버를 실행하려고 할 때 오류의 문자열을 얻을 :

(PyDev의) C : \ 사용자 \를 PyDev를 \ SMRT > 파이썬 manage.py 실행 서버 시스템 검사를 수행 ...

Unhandled exception in thread started by <function wrapper at 0x0000000003FFD278 
    > 
    Traceback (most recent call last): 
... 
     File "C:\Python27\Lib\site-packages\rest_framework\generics.py", line 8, in <m 
    odule> 
     from rest_framework import views, mixins 
     File "C:\Python27\Lib\site-packages\rest_framework\views.py", line 14, in <mod 
    ule> 
     from rest_framework.response import Response 
     File "C:\Python27\Lib\site-packages\rest_framework\response.py", line 8, in <m 
    odule> 
     from django.core.handlers.wsgi import STATUS_CODE_TEXT 
    ImportError: cannot import name STATUS_CODE_TEXT 

누구나 내가 뭘 잘못이 문제를 해결하거나하는 방법에 대한 아이디어가? 감사!

  • 파이썬 : 2.7.14
  • 장고 : 1.11.6
  • 나머지 프레임 워크 : 3.1.1
  • VIRTUALENV : 12.1.1

wpercy가 제대로 STATUS_CODE_TEXT가되었다는 지적 장고에서 제거하지만, 명시 적으로 어디서든지 내 코드에서 호출하지는 않습니다. 내 생각에 rest_framework.generics 코드의 어딘가에 있다는 뜻인가요?

rest_framework를 잘못 사용하고있어 접근 방법을 업데이트해야합니까?

편집 : 나는 장고 나머지 프레임 워크 튜토리얼 다음 처음부터 새로운 프로젝트를 구축, 나는

편집

이 ... JSON은 여기에 설명 된 오류없이 잘 객체를 반환 할 수 있어요 :이 구체적으로 나타납니다 호출의 결과를 포함합니다 :

rest_framework.generics import ListAPIView 

편집 : 내가 참조가 해방 \ 사이트 - 패키지 \ 내 루트 python27 가리키는 것을 더주의 깊게 추적을 통해 보면서 실현 wpercy의 조언을 바탕으로 \ rest_framework 응답 \ .py는 위에 표시된대로 8 번 줄에서 찾았습니다.

return STATUS_CODE_TEXT.get(self.status_code, '') 

가 어떻게이 문제를 해결할 수 있습니다
from django.core.handlers.wsgi import STATUS_CODE_TEXT 

다음 라인 (81)에 ?

편집 : 나는

Link to relevant ticket

을 게시 아래 & 주석을 wpercy 링크를 발견했다. Jpadilla 작성 : 요약

우리는 아마 response.py에 뭔가를 할 수 있어야합니다

from django.utils.six.moves.http_client import responses 

...

return responses.get(self.status_code, '') 

나는 GitHub의에 폐쇄 항목입니다 제안에 떨어 :

ticket for django-rest-framework Status code

서버는 이제 실행됩니다. 이 나이 코드로 어떻게 끝났는지 모르겠습니다. 어쩌면 내가 최신 버전을 가지고 있는지 확인하기 위해 장고 - 나머지 - 프레임 워크를 제거하고 다시 설치해야하지만이 코드를 삭제하면 문제가 해결 될 것입니다.

편집 : 내가 다른 질문에서받은 답변에 따라 : 'Options' object has no attribute 'get_all_related_objects' but I'm already using Django 1.11 그것은 내가 장고의 새로운 버전으로 나머지 프레임 워크의 이전 버전을 사용하고 있었던 것으로 나타났다. 아래 표시된 답변을 참조하십시오.

+0

을 (https://github.com/encode/django-rest-framework/issues/2763) – user2357112

+0

나는, 이제 참조 하지만 어디서나 (의도적으로) 내 코드에서 wsgi.STATUS_CODE_TEXT를 사용하지 않고 있습니다 ... 어디서 참조 할 수 있습니까? –

답변

1

에 대한 django-rest-framework 버전 장고 버전 1.11을 지원하지 않습니다 (V3.1.1)를 사용하고 있기 때문에이 오류입니다 . Support for Django v1.11 was not added in django-rest-framework until version 3.7. PIP 사용

업그레이드 django-rest-framework : [. 그것은 더 이상 존재하지 않는] pip install -U djangorestframework

+0

다시 한번 감사드립니다. @anupsabraham! 이것은 나를 미치게했다! –

+0

차가움. 기꺼이 도와 드리겠습니다. :) – anupsabraham

0

django.core.handlers.wsgi.STATUS_CODE_TEXT이 장고 1.9에서 제거되었습니다. Django 1.9 release notes에서

:

django.http.responses.REASON_PHRASES 및 django.core.handlers.wsgi.STATUS_CODE_TEXT가 제거되었습니다. 사용 파이썬의 다음 stdlib 대신 : http.client.responses 파이썬 3과 httplib.responses 파이썬 2

+0

대단히 감사합니다! ... 나는이 프레임 워크에 대해 아주 새롭다. wsgi 대신 stdlib를 사용하려면 어떻게해야합니까? settings.py가 httplib.responses를 가리 키도록 수정합니까? –

+0

내 코드에서 django.core.handlers.wsgi.STATUS_CODE_TEXT를 명시 적으로 호출하지 않을 것입니다. 프로젝트에서이 참조를 어떻게 찾을 수 있습니까? 아니면 올바른 방향으로 가고 있지 않습니까? –

+0

@SumGuy traceback은 import 문이 들어있는 파일을 알려줍니다. 전체 추적을 게시하십시오. – wpercy