Bienvenido a nuestro sitio, en este lugar encontrarás la resolución a lo que buscabas.
Solución:
Necesitas agregar % csrf_token %
en tu forma
https://docs.djangoproject.com/en/2.2/ref/csrf/
como eso :
Además, debe usar RequestContext (solicitud) cada vez que usa render_to_response
:
return render_to_response("login.html",
"registration_id":registration_id,
context_instance=RequestContext(request))
Y tienes que importar autenticarse e iniciar sesión:
from django.contrib.auth import authenticate, login
solo comenta
'django.middleware.csrf.CsrfViewMiddleware'
en tus configuración.pyque funciona para mí:
//settings.py
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ESTO PUEDE TENER DEFECTOS DE SEGURIDAD A MENOS QUE MANEJE CSRF DE OTRA FORMA, Y NO SE RECOMIENDA, YA QUE SERÁ SUSCEPTIBLE A LOS ATAQUES DE CSRF
Encontré este problema mientras usaba el libro “La guía definitiva de Django” en el que se usa la versión 1.1. El libro no aborda la necesidad de la verificación csrf_token que es obligatoria en versiones posteriores.
Para solucionar este problema, agregue:
from django.template import RequestContext
al archivo views.py y este argumento agregado para la función render_to_response:
context_instance = RequestContext(request)
Asegúrate de agregar % csrf_token %
dentro de