我有一個自定義退出瀏覽。我已經添加了裝飾像下面應該我在Django的註銷視圖中使用@csrf_protect與中間件
from django.views.decorators.cache import never_cache
from django.views.decorators.csrf import csrf_protect
from django.views.decorators.http import require_POST
from django.contrib.auth.views import logout_then_login
@csrf_protect
@require_POST
@never_cache
def logout(request):
nxt=request.POST.get('next')
print 'next=',nxt
return logout_then_login(request, nxt)
在我的設置文件,我有以下中間件類一起
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
)
由於CsrfViewMiddleware包含在這裏,我真的需要@csrf_protect用於我的視圖嗎?如果我同時使用,會不會有一些問題/衝突?
另外,當我檢查django source時,我發現裝飾器只適用於登錄視圖,而不適用於任何註銷,login_then_logout視圖。爲什麼?
任何幫助最歡迎的
謝謝@Todd,作爲django和web開發的新手,我很努力地理解這些技術。我通過django源代碼瀏覽並經常感到困惑 – damon 2012-03-30 03:24:40
@damon,我不會使用源代碼作爲指導框架。 Django的文檔是我使用過的最好的文檔之一(如果不是*最好的)。我肯定會閱讀網站上的Django教程,並將其與官方Django文檔的其餘部分進行補充。 – Todd 2012-03-30 03:27:15