Не удалось импортировать 'knox.auth.TokenAuthentication' для настройки API 'DEFAULT_AUTHENTICATION_CLASSES'
Я новичок в Django rest и пытаюсь создать очень простое приложение, которое позволяет пользователю войти/зарегистрироваться с помощью knox. Но когда я пытаюсь выполнить команды типа "python manage.py makmigrations" или любые другие команды, связанные с Django, я получаю эту ошибку:
ImportError: Could not import 'knox.auth.TokenAuthentication' for API setting 'DEFAULT_AUTHENTICATION_CLASSES'. ImportError: cannot import name 'ugettext_lazy' from 'django.utils.trans lation' (C:\Users\user\Desktop\Proj\Server\env\lib\site-packages\django\utils\translation\__init__.py).
Вот части моего файла settings.py, которые, как мне кажется, связаны с knox:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'knox',
'corsheaders',
'app',]
AUTH_USER_MODEL = 'app.User'
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': ('knox.auth.TokenAuthentication', ),}
После нескольких часов попыток выяснить, почему это происходит, я понял, что это потому, что я использую Django 4.0!!!!!!
Я понизил версию до Django 3.2.11 и все оказалось в порядке:)
После поиска этой проблемы, потому что у меня она тоже есть.
Я установил pip install django-rest-knox
и он работает у меня.