无法为 API 设置 'DEFAULT_AUTHENTICATION_CLASSES' 导入 'knox.auth.TokenAuthentication'
Could not import 'knox.auth.TokenAuthentication' for API setting 'DEFAULT_AUTHENTICATION_CLASSES'
我是 Django rest 的新手,我正在尝试创建一个非常简单的应用程序,允许用户使用 knox login/sign-up。但是当我尝试 运行 命令如“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,它对我有用。
我是 Django rest 的新手,我正在尝试创建一个非常简单的应用程序,允许用户使用 knox login/sign-up。但是当我尝试 运行 命令如“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,它对我有用。