ImportError: Не удалось импортировать 'authentication.backends.JWTAuthentication' для настройки API 'DEFAULT_AUTHENTICATION_CLASSES'
Я следую примеру, приведенному здесь : https://www.django-rest-framework.org/api-guide/settings/#accessing-settings. Как только я открываю оболочку django, используя
python manage.py shell
и выполните следующую команду
from rest_framework.settings import api_settings
print(api_settings.DEFAULT_AUTHENTICATION_CLASSES)
Я получаю следующую ошибку
Traceback (most recent call last):
File "C:\django_project\.venv\lib\site-packages\rest_framework\settings.py", line 177, in import_from_string
return import_string(val)
File "C:\django_project\.venv\lib\site-packages\django\utils\module_loading.py", line 30, in import_string
return cached_import(module_path, class_name)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\django_project\.venv\lib\site-packages\rest_framework\settings.py", line 225, in __getattr__
val = perform_import(val, attr)
File "C:\django_project\.venv\lib\site-packages\rest_framework\settings.py", line 168, in perform_import
return [import_from_string(item, setting_name) for item in val]
File "C:\django_project\.venv\lib\site-packages\rest_framework\settings.py", line 168, in <listcomp>
return [import_from_string(item, setting_name) for item in val]
File "C:\django_project\.venv\lib\site-packages\rest_framework\settings.py", line 180, in import_from_string
raise ImportError(msg)
ImportError: Could not import 'authentication.backends.JWTAuthentication' for API setting 'DEFAULT_AUTHENTICATION_CLASSES'. ModuleNotFoundError: No module named 'authentication.backends'
Кто-то знает, что происходит?
P.S: У меня есть очень большой проект django, который не работает с той же ошибкой, поэтому я указываю только на основную настройку, которая не работает в этом примере.
Последняя строка в сообщении очень наглядно объясняет, почему происходит ошибка:
ModuleNotFoundError: No module named 'authentication.backends'
В DRF нет файла authentication/backends.py. См. репозиторий Github DRF. Во-вторых, DRF не предлагает аутентификацию JWT из коробки. Она поставляется с TokenAuthentication. Пожалуйста, смотрите https://github.com/encode/django-rest-framework/blob/master/rest_framework/authentication.py#L151 для подробностей.