Ich übergebe an Djangos Vorlage eine Funktion, die einige Datensätze zurückgibt. Ich möchte diese Funktion aufrufen und über ihr Ergebnis iterieren.Wie Funktion aufrufen, die ein Argument in einer Django-Vorlage übernimmt?
{% for item in my_func(10) %}
Das funktioniert nicht. Ich habe versucht, den Rückgabewert der Funktion auf eine Variable zu setzen und über die Variable zu iterieren, aber es scheint keine Möglichkeit zu geben, eine Variable in einer Django-Vorlage zu setzen.
Gibt es einen normalen Weg es zu tun?
Sehr traurig. Ich hätte gerne einen einfacheren Weg. – cleg
Ich denke, die Lösung mit der eingebauten Python '@ Eigenschaft 'ist natürlich die bessere Lösung, abhängig von der Situation. – jrast
ja, aber das löst das Problem nicht. Django ruft automatisch Funktionen auf, wenn sie keine Argumente benötigen.Das Schreiben von '{% für Element in myfunc%}' ist äquivalent zu 'für Element in myfunc()', wenn myfunc eine Funktion ohne Argumente ist. Die einzige wirkliche Einschränkung mit django ist das Aufrufen einer Funktion, die Argumente benötigt, die '' property' 'nicht löst (obwohl Sie zwar einige Attribute in der Vorlage setzen und sie als Argumente verwenden könnten, aber das ist auch nicht besonders sauber) – matts1