금지됨 (403)
CSRF 확인에 실패했습니다. 요청이 중단되었습니다. 실패 주어진 도움말
이유 : 장고의 CSRF 메커니즘이 제대로 사용되지 않은 경우가 진정한 크로스 사이트 요청 위조, 또는 경우에 일반적으로
CSRF token missing or incorrect.
이 발생할 수 있습니다. 당신이 당신의 장고 설정 파일에 진정한 DEBUG를 =이 있기 때문에
Your browser is accepting cookies.
The view function uses RequestContext for the template, instead of Context.
In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL.
If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data.
당신은이 페이지의 도움말 섹션을보고있다 : POST 양식의 경우, 확인해야합니다. 이 값을 False로 변경하면 초기 오류 메시지 만 표시됩니다.
CSRF_FAILURE_VIEW 설정을 사용하여이 페이지를 사용자 정의 할 수 있습니다.
{% csrf_token %} 템플릿 태그를 게시 태그 안에 넣었지만 여전히이 오류를 표시합니다. 감사
# views.py
#
# Copyright 2012 Talisman <[email protected]>
from django.shortcuts import render_to_response
from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.http import HttpResponseRedirect
def home (request):
return render_to_response('FirstTemplate.html',)
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
new_user = form.save()
return HttpResponseRedirect("/books/")
else:
form = UserCreationForm()
return render_to_response("register.html", {
'form': form,
})
형태
settings.pyMIDDLEWARE_CLASSES = (
'django.middleware.csrf.CsrfViewMiddleware',
)
에 미들웨어 설정이 넣어
{% extends "base.html" %}
{% block title %}Create an account{% endblock %}
{% block content %}
<h1>Create an account</h1>
<form action="" method="post"{% csrf_token %}>
{{ form.as_p }}
<input type="submit" value="Create the account">
</form>
{% endblock %}
{%의 csrf_token의 %는} 태그 –