这是我第一次使用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的模块。
出了什么问题?我应该安装另一个模块吗? 我的虚拟环境包含:
CERTIFI == 2017年4月17日
chardet的== 3.0.4
的Django == 1.11.2
的django的扩展== 1.8.1
的django-OAuth的工具包== 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
答案 0 :(得分:41)
看起来oath2_provider.ext
has been moved到oauth_provider.contrib
。您可以尝试安装较早版本的django-oauth-toolkit
,或尝试更改DEFAULT_AUTHENTICATION_CLASSES
中的值:
'oauth2_provider.ext.rest_framework.OAuth2Authentication',
为:
'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
请注意,本教程已有几年历史,您可能会发现其他类似的问题。
答案 1 :(得分:2)
我面临着同样的问题。在我的设置文件DEFAULT_AUTHENTICATION_CLASSES中 'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
我刚刚安装了旧版本,如@Alasdair询问。我的问题解决了。谢谢