我做错了什么?
...
from django.views.decorators.csrf import csrf_protect
from django.template import RequestContext
@csrf_protect
def home(request):
return render_to_response('home/home.html', {}, RequestContext(request))
def mail(request):
if request.method == 'POST':
...
形式:
<form method="POST" action="sendemail">
{% csrf_token %}
<input name="name" type="text" placeholder="Namr">
<input name="email" type="text" placeholder="mail">
<input type="submit">
</form>
URL:
url(r'^sendemail$', 'openshift.views.mail')
谢谢。
答案 0 :(得分:1)
@csrf_protect装饰器应位于处理表单的视图上,而不是显示表单的视图。
此外,如果您安装了CSRF中间件,则所有POST视图都会自动受到保护。
请参阅文档:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/