Configuración de una variable en middleware para acceder en la plantilla.

Parece que tengo dificultades para configurar una variable en una de mis clases de middleware a la que luego puedo acceder en la capa de plantilla.

El diseño básico es este:

class TheMiddleware(object):
    def __init__(self, etc):
        stuff...

    def process_response(self, request, response):
        request.my_var = "whatever"
        return response

Luego en la plantilla para una vista diferente tengo:

{% custom_tag arg_a %}

Que es una etiqueta de plantilla que debería devolver la variable de la solicitud:

@register.simple_tag
def custom_tag(arg_a):
    return threading.currentThread().request.my_var

Este error con"Atrapado AttributeError al representar: el objeto 'WSGIRequest' no tiene ningún atributo 'my_var'"

Pensé que podría ser la forma en que accedía a la solicitud en la etiqueta de la plantilla. Así que agregué django.core.context_processors.request a mi TEMPLATE_CONTEXT_PROCESSORS como enEsta pregunta e intentó pasar el objeto de solicitud a la etiqueta y luego acceder a la solicitud directamente desde la plantilla, pero sin suerte.

Creo que no entiendo cómo funcionan los objetos de solicitud. ¿Es posible asignar una variable a un objeto de solicitud y seleccionar esa variable en varias vistas? Pensé que el objeto de solicitud se pasó a través de las vistas, pero parece que en su lugar se genera una nueva instancia.

Si ese es el caso, ¿cómo almacenaría una variable global en el middleware a la que luego podría acceder desde cualquier punto de su aplicación, ya sea en una vista o en una plantilla?

Actualizar:

Para aclarar la confusión (ya sea mía u otras, no estoy seguro!) Estoyno tratando de establecer la variable de solicitud en el middleware process_response de una vista y luego recogerla en la plantillade esa misma vista. Entiendo que eso no funcionaría porque la plantilla se procesó antes de guardar la variable. (Este es un acto deliberado de mi parte).

Tengo dos vistas,vista1 yvista2 La vista uno tiene un decorador que hace que el middleware establezca la variable en la solicitud. Es la plantilla view2, que viene después de que se haya establecido la variable, la que deseo acceder a la variable.

Respuestas a la pregunta(2)

Su respuesta a la pregunta