web-dev-qa-db-ja.com

API設定「DEFAULT_AUTHENTICATION_CLASSES」の「oauth2_provider.ext.rest_framework.OAuth2Authentication」をインポートできませんでした

Django休憩とDjango Oauthツールキットこのチュートリアルに従っています oauth2-with-Django-rest-framework しかし、python manage.py migrateを実行すると、次のエラーが発生します。

ImportError:API設定「DEFAULT_AUTHENTICATION_CLASSES」の「oauth2_provider.ext.rest_framework.OAuth2Authentication」をインポートできませんでした。 ImportError:ext.rest_frameworkという名前のモジュールはありません。

何が問題になっていますか?インストールする必要がある別のモジュールはありますか?私の仮想環境には次が含まれます:

certifi == 2017.4.17

chardet == 3.0.4

Django == 1.11.2

Django-extensions == 1.8.1

Django-oauth-toolkit == 1.0.0

djangorestframework == 3.6.3

idna == 2.5

oauthlib == 2.0.2

pytz == 2017.2

リクエスト== 2.18.1

6 == 1.10.0

Unidecode == 0.4.21

urllib3 == 1.21.1

16
Akamee

oath2_provider.ext移動されました からoauth_provider.contribに見えます。古いバージョンのDjango-oauth-toolkitをインストールするか、DEFAULT_AUTHENTICATION_CLASSESの値を次のように変更してみてください:

'oauth2_provider.ext.rest_framework.OAuth2Authentication',

に:

'oauth2_provider.contrib.rest_framework.OAuth2Authentication',

チュートリアルは2年前のものであり、このような他の問題が見つかることがあることに注意してください。

45
Alasdair

私は同じ問題に直面していました。私の設定ファイルでは、DEFAULT_AUTHENTICATION_CLASSESはすでに'oauth2_provider.contrib.rest_framework.OAuth2Authentication'、でした

@Alasdairが求めるように、古いバージョンをインストールしました。私の問題は解決しました。ありがとう

2
sakulachi8