2012-10-03 82 views
6

我已經啓動了新的django項目並啓用了管理員應用程序。 我可以登錄到管理網站,但是當我試圖添加/更改站點或用戶我得到Django管理員提出CSRF驗證失敗

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

你有沒有試過清理你的cookie?如果一切設置正確,這可能會爲您解決。 –

回答

6

你是否重寫了CSRF_COOKIE_DOMAIN設置?如果CSRF令牌存在於表單中,並且您尚未修改管理應用程序的來源,那麼最有可能的情況是該Cookie未被正確設置。

檢查登錄頁面的響應標頭以確保cookie設置正確,並檢查登錄嘗試的請求標頭以確保它也被髮送(並與表單中的值匹配)。

+1

oops ...看起來我只需要清除緩存並重新啓動我的機器。感謝您的幫助 – igoris

+0

這裏也有類似的問題。我只是刷新登錄頁面而不是從/ admin /開始。 –

0

本地,我有一個項目,CRSF在瀏覽http://localhost:8040/my-admin/時工作正常,但在http://127.0.0.1:8040/my-admin/失敗。

我不知道爲什麼,但這可能有助於挽救一些人一段時間。

注意:我還沒有設置CSRF_COOKIE_DOMAIN