无法为API设置'DEFAULT_AUTHENTICATION_CLASSES'

时间:2017-07-11 08:24:46

标签: django oauth-2.0 django-rest-framework importerror django-oauth

这是我第一次使用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

2 个答案:

答案 0 :(得分:41)

看起来oath2_provider.ext has been movedoauth_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询问。我的问题解决了。谢谢