2016-12-08 4 views
0

Ich habe eine Liste ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'].Schneiden in Django Vorlage

In meinem django Vorlagen, möchte ich die Ausgabe als

a b 
c d 
e f 
g h 

Das ist, was ich tue: -

{% for i in list|slice:"::2" %} 
    {{i}} {{}} // how do I get the second element? 
{% endfor %} 

Was bin ich?

Im Anschluss an dem Python-Äquivalent: -

for i in range(0, len(list), 2): 
    print list[i], list[i+1] 

Antwort

3

Ich habe keine Ahnung, was Sie durch das "zweite Element" bedeuten. Wenn Sie eine solche Liste aufteilen, erhalten Sie nacheinander ['a', 'c', 'e', 'g'] und i.

Ich vermute, dass Sie das überhaupt nicht wollen; Sie möchten wahrscheinlich die gesamte Liste durchlaufen und {% if forloop.counter|divisibleby:2 %} verwenden, um zu bestimmen, wann ein neuer Absatz eingefügt oder das Tag unterbrochen werden soll.

+0

Hallo Daniel, bitte einen Blick auf aktualisiertem Frage (Das Python-Äquivalent). – PythonEnthusiast

+0

Das ist überhaupt nicht äquivalent. Das "Python-Äquivalent" wäre "für i in lst [:: 2]". –

+0

Mein Fehler. Ja, "für mich in lst [:: 2]" wäre passender. Wie kann ich 'i'th und' i + 1'th index in django Vorlage drucken. – PythonEnthusiast

1

Zusätzlich zu der vorherigen Antwort. Sie können dafür auch cycle tag verwenden.

{% for el in my_list %} 
    {{ el }} 
    {% cycle ' ' '<br>' %} 
{% endfor %} 

wird Ihnen gewünschten Ausgang geben:

a b 
c d 
e f 
g h