¿Por qué “django.core.context_processors.request” no está habilitado de forma predeterminada?

Estaba solucionando un problema al obtener el objeto de solicitud con un nuevo proyecto y me di cuenta de que “django.core.context_processors.request” se comentó en las instalaciones de vainilla de Django.

Como sugiere el título, ¿por qué este procesador de contexto aparentemente útil se desactivaría de forma predeterminada?

  • ¿Es un problema con el rendimiento?
  • ¿Es un problema con la seguridad?
  • ¿Es de alguna manera redundante?

Alguna búsqueda suave no ha resultado nada para mí, pero pensé que preguntaría aquí.

Esta es una buena pregunta. Los documentos dicen: Note that this processor is not enabled by default; you'll have to activate it. Note that this processor is not enabled by default; you'll have to activate it. pero no hay explicación.

Mi opinión se debe al intenso deseo de django de separar la lógica de vista de la plantilla.

El objeto de solicitud es la puerta de acceso a todos los datos desde los que se construye la lógica de visualización (dado lo que nos envió el navegador, haga X, Y, Z); por lo tanto, permitir que en las plantillas sea similar a darle a la plantilla grandes cantidades de control, lo que debería ser Colocado en la vista en circunstancias normales. La idea es rellenar el contexto de la plantilla con detalles específicos, no todo .

Eliminarlos es solo un poco más de aliento de que “la mayoría de las cosas deben hacerse en la vista”. La mayoría de las aplicaciones django.contrib comunes no dependen de ella, si no se requiere de forma predeterminada.

Y, por supuesto, eso es una prueba más de que el objeto de solicitud no es necesario en la plantilla, excepto en casos de uso especiales.

Esa es mi opinión, de todos modos.