所以我正在故宮(403)CSRF驗證失敗。請求中止。給出失敗的原因:CSRF令牌丟失或不正確。
我在我的middleware_classes中有'django.middleware.csrf.CsrfViewMiddleware'。 這裏是我的模板Django的--CSRF令牌丟失或不正確
<form name="input" action="/login/" method="Post"> {% csrf_token %}
<input type="submit" value="Submit"></form>
這是我的看法
from django.shortcuts import render_to_response
from django.core.context_processors import csrf
from django.template import RequestContext
def login(request):
csrfContext = RequestContext(request)
return render_to_response('foo.html', csrfContext)
嗯,我是新來的Django和大多數Web開發,但我似乎無法在這裏找到問題。任何幫助將非常感激!
此外,我已經嘗試了Django文檔
c = {}
c.update(csrf(request))
# ... view code here
return render_to_response("a_template.html", c)
只是一個方面說明:如果你是新來的Django,我會考慮使用基於類的視圖幾乎所有東西。即使你只是重寫'post',他們至少也會強制服務器將響應哪個HTTP請求類型。 – Arion
什麼樣的模板/視圖是在
您需要在模板中添加'{%csrf_token%}'。並確保'RequestContext'存在..當然,'settings.py'中的相應中間件以及..如果問題仍然存在。我不確定但是..嘗試一些'@ csrf_exempt'裝飾器..等 – Surya