Me gustaría que el formulario de inicio de sesión (AuthenticationForm de django.contrib.auth) aparezca en todas las páginas de mi sitio si el usuario no está conectado. Cuando el usuario inicia sesión, será redirigido a la misma página. Si hay un error, el error se mostrará en la misma página con el formulario.Poner un formulario de inicio de sesión django en cada página
Supongo que necesitará un procesador de contexto para proporcionar el formulario a cada plantilla. Pero, ¿entonces también necesitaría todas las vistas para manejar el formulario publicado? ¿Esto significa que necesitas crear algún middleware? Estoy un poco perdido.
¿Hay una forma aceptada de hacer esto?
Gracias, me estaba arrancando el pelo tratando de hacer algo similar (pero a través de un procesador de contexto). – LaundroMat
Solución realmente limpia, pero ¿tiene que verificar todos los demás formularios publicados para asegurarse de que no es is_top_login_form antes de intentar validar el formulario, o me falta alguna parte? Me refiero a la vista más adelante si tiene alguna. otra forma tiene que ser si reqeust.POST y no 'is_top_lo gin_form 'en request.POST? – niklasdstrom
Los formularios Django toman un argumento ['prefix'] (https://docs.djangoproject.com/en/dev/ref/forms/api/#prefixes-for -forms), que puede usar en lugar del campo oculto. p.ej. 'form = AuthenticationForm (prefix =" login ", data = request.POST)'. – Alasdair