我已经启动了新的django项目并启用了管理员应用。 我可以登录管理站点但是当我尝试添加/更改站点或用户时我正在
CSRF verification failed. Request aborted.
Reason given for failure:
CSRF token missing or incorrect.
这就是我在settings.py中所拥有的:
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
)
当我查看管理页面来源时,我看到了
<input type='hidden' name='csrfmiddlewaretoken' value='T9Mfk1LRXi5jPE2dh5jcvdKwzYM6Iy5I' />
有
我有Django版本1.4.1
答案 0 :(得分:7)
您是否覆盖了CSRF_COOKIE_DOMAIN设置?如果表单中存在CSRF令牌,并且您尚未修改管理应用程序的源,则最可能的情况是未正确设置cookie。
检查登录页面的响应标头以确保正确设置cookie,并检查登录尝试的请求标头以确保它也被发送(并匹配表单中的值)。 / p>
答案 1 :(得分:0)
在本地,我有一个项目,在浏览http://localhost:8040/my-admin/
时CRSF正常工作但在http://127.0.0.1:8040/my-admin/
失败。
我不确定为什么,但这可能有助于节省一些时间。
注意:我还没有设置CSRF_COOKIE_DOMAIN
。