所以我正在故宫(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