Paso a la plantilla de Django, una función que devuelve algunos registros. Quiero llamar a esta función e iterar sobre su resultado.¿Cómo llamar a la función que toma un argumento en una plantilla de Django?
{% for item in my_func(10) %}
Eso no funciona. He intentado establecer el valor de retorno de la función a una variable e iterar sobre la variable, pero parece que no hay forma de establecer una variable en una plantilla de Django.
¿Hay alguna manera normal de hacerlo?
muy triste. Me gustaría tener una manera más simple. – cleg
Creo que la solución con el pitón incorporado '@ property' es la mejor solución, por supuesto, dependiendo de la situación. – jrast
sí, sin embargo, eso no resuelve el problema. Django llama automáticamente a las funciones si no requieren argumentos.Escribir '{% para el elemento en myfunc%}' es equivalente a 'para el elemento en myfunc()' si myfunc es una función sin argumentos. La única restricción real con django es llamar a una función que requiere argumentos, que '@ property' no resuelve (aunque es cierto que se pueden establecer algunos atributos en la plantilla y usarlos como argumentos, pero eso tampoco está particularmente limpio) – matts1