Django Admin CSRF Verification当debug = False时失败

时间:2017-03-09 19:10:19

标签: python django ssl heroku csrf

我正在构建一个Django(1.9.6)应用程序,在Heroku上托管带有一个带有Let的加密SSL证书的gunicorn。当我尝试在管理员中保存模型时,我遇到了Forbidden 403错误,并显示消息" CSRF验证失败。请求中止。有关DEBUG = True的更多信息。"如果我将debug设置为True,则不再出现错误。

我的settings.py文件包含:

ALLOWED_HOSTS = ['localhost', '.example.com']

MIDDLEWARE_CLASSES = [
    'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
CSRF_COOKIE_SECURE = True
CSRF_TRUSTED_ORIGINS = ['localhost', '.example.com']
SECURE_HSTS_SECONDS = 60
SECURE_HSTS_INCLUDE_SUBDOMAINS = True

我尝试过使用不同的设置,包括CSRF_COOKIE_DOMAIN,并且我已经清除了我的缓存和Cookie。

我最近将我的数据库从SQLite迁移到PostgreSQL,所以我认为它可能与pk计数器重置为1有关;我尝试在数据库中删除我的模型来解决这个问题,但我仍然无法保存模型。

我还注意到我的一个Django {%include template.html%}标签不起作用,不确定这是否相关。

0 个答案:

没有答案