2015-09-25 4 views
0

Good Afternoon,Не удалось выполнить проверку CSRF. Запрос прерван. 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 эс ми 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 эс ми 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'), 

]

ответ

0

вам нужен маркер CSRF, что Джанго обеспечивает ... (necesitas ла клаву CS д Джанго Tiene incluido)

<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 (о си quierres se puede apagar los protejos de csrf)

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

Просто добавьте тег csrf и ничего более? –

+0

внутри '

' –

+0

Спасибо другу: D вы меня спасе;) –

Смежные вопросы