2017-10-18 1 views
0

私はdjangoとpythonで新しくなりました。私はプロジェクトに統合されたdjango restフレームワークを手に入れることができません。私は順番に私のモデル、シリアライザ、およびAPIを持ってインポートエラー:django.core.handlers.wsgiからインポートします。STATUS_CODE_TEXT

、私は思うが、私は、サーバーを実行しようとすると、私はエラーの文字列を取得:

(PyDevは)C:\ Users \ユーザーPyDevは\ SMRTシステムチェックの実行>のpython 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 

誰もが私が間違っているの何、これを修正したりする方法のアイデアを持っていますか?ありがとう!

  • のpython:2.7.14
  • ジャンゴ:1.11.6
  • 残りのフレームワーク:3.1.1
  • virtualenvの:12.1.1

wpercyが正しくSTATUS_CODE_TEXTがあったことを指摘djangoから削除されましたが、コード内のどこからでも明示的に呼び出すわけではありません。私はそれがrest_framework.genericsコードのどこかにあることを意味するでしょうか?

rest_frameworkを間違って使用している可能性はありますか?私のアプローチを更新する必要がありますか?

編集:私はDjangoの残りのフレームワークのチュートリアル以下のゼロから新しいプロジェクトを構築し、私はここで説明するエラーなしでうまくJSONオブジェクトを返すことができるよ...

EDIT:これは、具体的であるように思われます

rest_framework.generics import ListAPIView 

EDIT:私はもっと慎重にトレースバックを通して見て、参照がのLib \サイト - パッケージ\私のルートpython27を指したことに気づいwpercyのアドバイス\ rest_frameworkの\応答に基づいて 含めるための呼び出しの結果上記のように8行目の.pyが見つかりました:

from django.core.handlers.wsgi import STATUS_CODE_TEXT 

して、行81上:

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

私はこれをどのように修正することができますか?

EDIT: 私は投稿

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

とサーバーは現在実行されます。私はこの古いコードでどうやって終わったのか分かりません。恐らく、私はdjango-rest-frameworkをアンインストールして再インストールして最新のものを確認するべきですが、このコードを削除すると問題は解決しました。

編集:私は別の質問から受け取った回答に基づいて :'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バージョン(v3.1.1)はDjangoのバージョン1.11をサポートしていないため、このエラーがあります。 Support for Django v1.11 was not added in django-rest-framework until version 3.7

ピップを使用してアップグレードdjango-rest-framework:[。もはや存在しない] pip install -U djangorestframework

+0

もう一度@anupsabrahamに感謝します!これは私を狂って運転していた! –

+0

Cool。私はお手伝いできます。 :) – anupsabraham

0

django.core.handlers.wsgi.STATUS_CODE_TEXTがDjango 1.9で削除されました。 Django 1.9 release notesから

django.http.responses.REASON_PHRASESとdjango.core.handlers.wsgi.STATUS_CODE_TEXTは削除されました。代わりに使用PythonのSTDLIB:http.client.responsesのPython 3用とhttplib.responsesのPython 2

+0

よろしくお願いします! ...私はこのフレームワークに対して非常に新しいです。 wsgiではなくstdlibをどうやって使うのですか? https.responsesを指すようにsettings.pyを変更するだけですか? –

+0

私はコード内でどこでも明示的にdjango.core.handlers.wsgi.STATUS_CODE_TEXTを呼び出しません。どのようにプロジェクト内の参照を見つけることができますか?または正しい軌道上にないのですか? –

+0

@SumGuyトレースバックは、インポート・ステートメントがどのファイルにあるかを教えてくれます。トレースバック全体を投稿してください。 – wpercy

関連する問題