为什么我的POST表单中出现csrf错误?(django/python) views.py 登录www.home.html

为什么我的POST表单中出现csrf错误?(django/python) views.py 登录www.home.html,python,django,Python,Django,^^这是我的档案。问题是我提交表单后出现的错误: Forbidden (403) CSRF verification failed. Request aborted. 我不确定我忘记了什么或错过了什么。我猜它在视图函数的某个地方。有人能指出我缺少的那一点吗 谢谢您的帮助。您需要使用RequestContext或返回使用c.update(csrf(request))创建的上下文: 使用RequestContext,它始终使用“django.core.context\u processors.c

^^这是我的档案。问题是我提交表单后出现的错误:

Forbidden (403)
CSRF verification failed. Request aborted.
我不确定我忘记了什么或错过了什么。我猜它在视图函数的某个地方。有人能指出我缺少的那一点吗


谢谢您的帮助。

您需要使用
RequestContext
或返回使用
c.update(csrf(request))
创建的上下文:

  • 使用RequestContext,它始终使用“django.core.context\u processors.csrf”(无论您的模板\u context\u processors设置如何)。如果您使用的是通用视图或contrib应用程序,则已涵盖您,因为这些应用程序在整个过程中都使用RequestContext

  • 手动导入并使用处理器生成CSRF令牌,并将其添加到模板上下文中。e、 g


  • 那么我应该把代码改成什么呢?我已经给你看了;向您添加一个
    RequestContext
    方法
    render\u to\u response
    {% extends "base.html" %}
    {% block page %}
        {{ name }}
        <form action = "/blog/home/" method = "POST">{% csrf_token %}
        <input type = "text" name = "username" placeholder = "username">
        <input type = "text" name = "password" placeholder = "password">
        <input type = "submit">
        </form>
    
        {{ username }}
        {{ password }}
    
    {% endblock %}
    
    from django.conf.urls import patterns, include, url
    urlpatterns = patterns('',
        url(r'^home/$', 'blog.views.home'),
    )
    
    Forbidden (403)
    CSRF verification failed. Request aborted.
    
    return render_to_response("login_home.html",
        {"username":username, "password":password}
        context_instance=RequestContext(request))