Tenía una etiqueta simple personalizada. Y parece que no puedo usar un filtro como argumento.django - use el filtro en el argumento a simple_tag
Aquí hay un ejemplo. mysum
es la etiqueta. myincrease
es el filtro. foobar
es una variable y quiero pasar foobar|myincrease
a mysum
.
La plantilla:
{% mysum foobar|myincrease 1 2 %}
da el error:
TemplateSyntaxError at/
Caught VariableDoesNotExist while rendering: Failed lookup for key [foobar|myincrease] in ...
el tag:
@register.simple_tag
def mysum(a, b, c):
return a + b + c
El filtro:
@register.filter
def myincrease(num):
return num + 1
He solucionado mi problema original utilizando otros enfoques. Pero todavía me pregunto si esto es por diseño, o un error mío, o un error de django, o algo que se ha pasado por alto.
Creo que llamar al compile_filter
en la implementación del decorador simple_tag
lo haría.
¿Has encontrado una respuesta por tu cuenta? Estoy enfrentando el mismo problema ^^ –
Lo siento, no recuerdo bien ahora. Creo que terminé usando la solución. – jsz
Parece un problema específico de django: reproducible en 1.3.1, funciona en 1.4.1. – seeg