ERROR:
失败原因:未设置CSRF cookie . 通常,当存在真正的跨站请求伪造,或者Django的CSRF机制未正确使用时,可能会发生这种情况 . 对于POST表单,您需要确保:您的浏览器正在接受cookie . 视图函数使用RequestContext作为模板,而不是Context . 在模板中,每个POST表单中都有一个{%csrf_token%}模板标记,用于定位内部URL . 如果您不使用CsrfViewMiddleware,则必须在使用csrf_token模板标记的任何视图以及接受POST数据的视图上使用csrf_protect . 您正在查看此页面的帮助部分,因为您的Django设置文件中有DEBUG = True . 将其更改为False,仅显示初始错误消息 . 您可以使用CSRF_FAILURE_VIEW设置自定义此页面 .
我能找到的一切,没有任何帮助,一定是非常愚蠢的事情((
My template
<form method="POST">{% csrf_token %}
{% for field in form %}
<div class="control-group">
{{ field }}
</div>
{% endfor %}
<input type="Submit" id="fsubmit" class="btn btn-primary btn-large btn-block" value='Register'/>
</form>
my Views.py
from django.shortcuts import render_to_response
from django.template import RequestContext
def register_user(request):
context = {}
if request.method == 'POST':
form = RegisterForm(request.POST)
if form.is_valid():
pass
else:
form = RegisterForm(auto_id=False)
context['form'] = form
return render_to_response('templates/register.htm',context, context_instance=RequestContext(request))
Settings
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',
)
1 回答
使用csrf_exempt来避免使用csrf令牌 .
在视野中
来自django.views.decorators.csrf import csrf_exempt