配置rest_framework_simplejwt遇ImproperlyConfigured错误,请求协助
解决方法
原因分析
你遇到的错误是因为DRF的authtoken模块尝试调用Token模型,但你既没有将rest_framework.authtoken加入INSTALLED_APPS,也未全局设置TOKEN_MODEL = None。虽然你配置了REST_AUTH_TOKEN_MODEL = None,但这是dj_rest_auth的专属配置,无法覆盖DRF核心模块对Token模型的检查逻辑。
具体修复步骤
- 在
settings.py中添加全局TOKEN_MODEL设置,替换或补充现有配置:
# 新增该行,明确告知DRF不使用默认Token模型 TOKEN_MODEL = None REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'dj_rest_auth.jwt_auth.JWTAuthentication', ), 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.AllowAny', ], 'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema', } REST_AUTH_TOKEN_MODEL = None REST_USE_JWT = True SIMPLE_JWT = { 'ACCESS_TOKEN_LIFETIME': timedelta(hours=1), 'REFRESH_TOKEN_LIFETIME': timedelta(days=5), }
检查
INSTALLED_APPS,如果之前添加过rest_framework.authtoken,可以移除——因为你使用JWT认证,不需要依赖该模块。重启Django服务,错误即可消除。
额外验证点
如果问题仍存在,可排查以下内容:
- 确认
rest_framework_simplejwt和dj_rest_auth已正确安装(执行pip install djangorestframework-simplejwt dj-rest-auth)。 - 确保
settings.py顶部已导入timedelta(添加from datetime import timedelta)。
内容的提问来源于stack exchange,提问作者meduals
相关产品推荐
相关产品推荐

