19

这是我第一次使用 django rest 和 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 的模块。

出了什么问题?我应该安装另一个模块吗?我的虚拟环境包含:

证书==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

六==1.10.0

单解码==0.4.21

urllib3==1.21.1

4

2 回答 2

46

好像oath2_provider.ext 已经移到oauth_provider.contrib. 您可以尝试安装旧版本的django-oauth-toolkit,或尝试更改以下值DEFAULT_AUTHENTICATION_CLASSES

'oauth2_provider.ext.rest_framework.OAuth2Authentication',

至:

'oauth2_provider.contrib.rest_framework.OAuth2Authentication',

请注意,本教程已有几年的历史,您可能会发现其他类似的问题。

于 2017-07-11T08:51:53.727 回答
2

我面临同样的问题。在我的设置文件 DEFAULT_AUTHENTICATION_CLASSES 已经是 'oauth2_provider.contrib.rest_framework.OAuth2Authentication',

我刚刚按照@Alasdair 的要求安装了旧版本。我的问题解决了。谢谢

于 2019-05-02T06:43:37.693 回答