2017-03-04 6 views
0

Ich habe eine benutzerdefinierte Tag-Funktion definiert und versuche, zwei Argumente in die Funktion zu übergeben, die aus dem Array stammen, das ich durchschlinge.Wie verwendet man Django-Template-Variablen in Template-Tags?

Im Wesentlichen, ich versuche so etwas wie die folgenden Funktionen ausführen:

{% for x in array %} 
    {% custom_tag_function {{ forloop.counter }} {{ array|length }} %} 
{% endfor %} 

aber ich bin ein Parsing-Fehler als django Empfangen wird im Argument als String übergeben (zB "{{ forloop.counter }}") anstelle des bewerteter Wert.

Ich habe versucht, dies zu tun:

{% for x in array %} 
    {% with cnt={{ forloop.counter }} len={{ array|length }} %} 
    {% custom_tag_function cnt len %} 
{% endfor %} 

Ich aber nehmen die gleichen Parsing-Fehler.

Gibt es einen geeigneten Weg, dies innerhalb Django zu tun?

+0

In Ihrem zweiten Versuch haben Sie vergessen haben, {% endwith%} zu schreiben. –

+1

Haben Sie das überprüft? {% custom_tag_function forloop.counter array | length%} –

+0

Das hat funktioniert, danke Mehdi! – Marto

Antwort

0

Wie oben in seinem Kommentar von Mehdi erwähnt, löst das folgende Problem:

{% for x in array %} 
    {% custom_tag_function forloop.counter array|length %} 
{% endfor %}