Cómo mostrar los mensajes de autenticación de Django sólo en la interfaz de administración?

StackOverflow https://stackoverflow.com/questions/674464

  •  21-08-2019
  •  | 
  •  

Pregunta

mensajes de autenticación de Django se ven bastante útil para notificar a un usuario de CMS de algún problema de configuración. La cosa es que los mensajes se eliminan en cada carga de página si se incluye el procesador de contexto "django.core.context_processors.auth", y hay que incluir ese procesador si desea utilizar la interfaz de administración.

He intentado cortar alrededor de ella, añadiendo que el procesador a TEMPLATE_CONTEXT_PROCESSORS justo después de que coincida con el URL de administración / admin.site.root antes de llamar, pero parece que ya ha sido importada la lista de procesadores en ese momento.

Entonces, ¿hay alguna manera de hacer esto sin cambiar ninguno del núcleo de Django propios archivos, y sin omitir la autenticación de Django aplicación desde su configuración por completo hasta el último momento posible?

¿Fue útil?

Solución

Si el sistema de mensajes de Django fue fundamental para mi sitio me gustaría añadir la mensajería en mis puntos de vista con, por ejemplo:

Si usted realmente necesita para entrar ilegalmente en él por lo que sólo muestran en las páginas de administración continuación, la solución más fácil sería copiar la función de autenticación en django.contrib.core.context_processors.py y ponerlo en un context_processors.py en su propia aplicación directorio. Utilizarlo en las CONTEXT_PROCESSORS apilar en lugar de la versión django.core y modificarlo para que se vea en la URL de solicitud y sólo llama user.get_and_delete_messages() si es la dirección URL de administración.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top