2011-09-23 10 views
5

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.

+0

¿Has encontrado una respuesta por tu cuenta? Estoy enfrentando el mismo problema ^^ –

+0

Lo siento, no recuerdo bien ahora. Creo que terminé usando la solución. – jsz

+1

Parece un problema específico de django: reproducible en 1.3.1, funciona en 1.4.1. – seeg

Respuesta

Cuestiones relacionadas