0

我究竟做错了什么?

...
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(r'^sendemail$', 'openshift.views.mail')

谢谢你。

4

1 回答 1

1

@csrf_protect 装饰器应该在处理表单的视图上,而不是显示表单的视图上。

此外,如果您安装了 CSRF 中间件,那么所有 POST 视图都会自动受到保护。

请参阅文档:https ://docs.djangoproject.com/en/dev/ref/contrib/csrf/

于 2013-04-07T13:30:02.647 回答