【问题标题】:Can't Add JWT_AUTH in setting无法在设置中添加 JWT_AUTH
【发布时间】:2018-02-13 07:08:34
【问题描述】:

我想设置 JWT 令牌的有效期,所以我在 settings.py 中添加了这个

JWT_AUTH = {
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=30),
}

在设置中添加后,我会收到此错误

django.contrib.sites.models.Site doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

“JWT_AUTH”有什么问题?这些是settings.py的相关部分

INSTALLED_APPS = [
    'corsheaders',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'rest_auth.registration',
    'rest_framework',
    'rest_framework.authtoken',
    'rest_auth',
    'profiles',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.facebook',
]
# localhost:8000/
SITE_ID = 9

【问题讨论】:

  • 一个 url 正在调用一个视图,该视图正在导入尚未加载的站点框架。唯一的候选人是 corsheaders,但我不明白这与添加 JWT_AUTH 字典有什么关系。
  • 嗯.. 好的,我将 corsheaders 放在 'django.contrib.sites' 之后。但它也没有奏效。我想你找到了问题所在。

标签: django django-rest-framework jwt


【解决方案1】:

显然,settings.py 中任何未解决的引用都会导致站点模型错误,而不是 settings.py 中的名称错误。

虽然在 Django (python manage.py check) 中不会发生这种情况:

'foo': datetime.timedelta(days=3),

NameError: 名称“日期时间”未定义

DRF 确实存在一些可能导致此行为的设置错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    相关资源
    最近更新 更多