Je passe au template de Django une fonction qui retourne des enregistrements. Je veux appeler cette fonction et parcourir son résultat.Comment appeler la fonction qui prend un argument dans un template Django?
{% for item in my_func(10) %}
Cela ne fonctionne pas. J'ai essayé de définir la valeur de retour de la fonction sur une variable et de l'itérer sur la variable, mais il ne semble pas possible de définir une variable dans un modèle Django.
Y at-il un moyen normal de le faire?
Très triste. J'aimerais avoir un moyen plus simple. – cleg
Je pense que la solution avec le python intégré '@ property' est la meilleure solution, bien sûr, selon la situation. – jrast
oui, mais cela ne résout pas le problème. Django appelle automatiquement les fonctions si elles ne nécessitent aucun argument.Écrire '{% pour item dans myfunc%}' est équivalent à 'pour item dans myfunc()' si myfunc est une fonction sans arguments. La seule véritable restriction avec django est l'appel d'une fonction qui nécessite des arguments, que '@ property' ne résout pas (bien que vous puissiez définir certains attributs dans le template et les utiliser comme arguments, mais ce n'est pas particulièrement net) – matts1