2011-07-13 9 views

Respuesta

4

Los filtros Django no tienen acceso especial al contexto del que se llaman, simplemente son funciones antiguas.

Deberá pasar todo lo que desee dentro de la función.

https://docs.djangoproject.com/en/dev/howto/custom-template-tags/

+1

Triste. Supongo que siempre podría hacer algo con middleware o procesadores de contexto de plantilla para establecer un hilo local, pero ... puaj. – dcrosta

+2

Aunque primero se siente PITA, reemplazar un filtro con una etiqueta de plantilla es bastante fácil con '@ register.simple_tag (takes_context = True)' –

0

Véase mi respuesta aquí:

https://stackoverflow.com/a/28098279/201945

Pero, en resumen, se puede acceder al context desde el interior de un filtro personalizado extrayéndolo de la pila de llamadas cuando, y sólo cuando , el filtro se llama durante el procesamiento.

Esto es, sin duda, una solución fortuita. Caveat Emptor.

Cuestiones relacionadas