CSRF 验证失败。请求中止。 Python 1.8

CSRF verification failed. Request aborted. Python 1.8

下午好,

我是 django 的新手,我正在创建一个登录门户,但出现以下错误 | CSRF 验证失败。请求已中止。

我正在使用 Django 1.8 和 Python 3.4,请帮助我,如果您需要其他任何东西,请告诉我

这是我的 views.py:

from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth import login, authenticate, logout
from django.contrib.auth.decorators import login_required
from django.shortcuts import render_to_response
from django.template import RequestContext

def nuevo_usuario(request):
if request.method == 'POST':
    formulario = UserCreationForm(request.POST)
    if formulario.is_valid():
        formulario.save()
        return HttpResponseRedirect('/')
else:
    formulario = UserCreationForm()
return render_to_response('registration/nuevo_usuario.html', {'formulario':formulario}, context_instance = RequestContext(request))

def ingresar(request):
if request.method == 'POST':
    formulario = AuthenticationForm(request.POST)
    if formulario.is_valid():
        usuario = request.POST['username']
        clave = request.POST['password']
        acceso = authenticate(username=usuario, password=clave)
        if acceso is not None:
            if acceso.is_active:
                login(request, acceso)
                return HttpResponseRedirect('/privado')
            else:
                return render_to_response('registration/noactivo.html', context_instance = RequestContext(request))
        else:
            return render_to_response('registration/nousuario.html', context_instance = RequestContext(request))
else:
    formulario = AuthenticationForm()
return render_to_response('registration/ingresar.html', {'formulario':formulario}, context_instance = RequestContext(request))

Este es mi archivo ingresar.html

{% extends 'base.html' %}
{% block titulo %}Ingresa al sistema{% endblock %}
{% block encabezado %}
Ingresa
{% endblock %}
{% block content %}
<div class="main">
    <div class="login-form">
        <h1> C. Monitoring Center</h1>
        <div class="head">

        </div>
        <form id = 'formulario' method = 'post' action = ''> {% csrf_token %}
            <input type="text" class="text" placeholder="Username" required autofocus>
            <input type="password" placeholder="Password" required>
            <div class="submit">
                <input type="submit" onclick="#" value="LOGIN" >
            </div>
            <p><a href="#">Forgot Password ?</a></p>
        </form>
    </div>

{% endblock %}

Este es mi archivo url.py

"""centinell URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.8/topics/http/urls/
Examples:
Function views
1. Add an import:  from my_app import views
2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
1. Add an import:  from other_app.views import Home
2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Add an import:  from blog import urls as blog_urls
2. Add a URL to urlpatterns:  url(r'^blog/', include(blog_urls))
"""
from django.conf.urls import include, url
from django.contrib import admin
from login.views import *

urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^$','login.views.ingresar'),
url(r'^usuario/nuevo$', 'login.views.nuevo_usuario'),
url(r'^ingresar/$', 'login.views.ingresar'),

]

你需要一个 django 提供的 csrf 令牌...

   <form id = 'formulario' method = 'post' action = ''> {% csrf_token %}
        <input type="text" class="text" placeholder="Username" required autofocus>
        <input type="password" placeholder="Password" required>
        <div class="submit">
            <input type="submit" onclick="#" value="LOGIN" >
        </div>
        {% csrf_token %} <!-- THIS!!!!! Aqui !!!-->
        <p><a href="#">Forgot Password ?</a></p>
    </form>

或者如果您愿意,您可以只禁用 csrf 保护(或者如果您愿意,您可以关闭 csrf 保护)

@csrf_exempt    # you need to import from django.contrib.auth
def ingresar(request):