Search code examples
djangooauth-2.0django-rest-frameworkimporterrordjango-oauth

Could not import 'oauth2_provider.ext.rest_framework.OAuth2Authentication' for API setting 'DEFAULT_AUTHENTICATION_CLASSES'


It's the first time I work with django rest and Django Oauth toolkit I'm following this tutorial oauth2-with-django-rest-framework But when I run python manage.py migrate I get the following error:

ImportError: Could not import 'oauth2_provider.ext.rest_framework.OAuth2Authentication' for API setting 'DEFAULT_AUTHENTICATION_CLASSES'. ImportError: No module named ext.rest_framework.

What is going wrong ? is there another module I should install ? my virtual environment contains :

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

requests==2.18.1

six==1.10.0

Unidecode==0.4.21

urllib3==1.21.1


Solution

  • It looks like oath2_provider.ext has been moved to oauth_provider.contrib. You could try installing an older version of django-oauth-toolkit, or try changing the value in DEFAULT_AUTHENTICATION_CLASSES from:

    'oauth2_provider.ext.rest_framework.OAuth2Authentication',
    

    to:

    'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
    

    Note that the tutorial is a couple of years old, you might find other problems like this.