ループしているWebページがあり、ループ内でcycleを使用しています。
{% for o in something %}
{% for c in o %}
<div class="{% cycle 'white' 'black'%}"></div>
{% endfor %}
さて、これはループ内で最初のdivタグが白になることを意味しますが、私が欲しいのは白と黒を交互に切り替えることです。つまり、白で開始し、次にループ内で最初のdivタグを黒で開始します。ここで達成するには?
ループしているWebページがあり、ループ内でcycleを使用しています。
{% for o in something %}
{% for c in o %}
<div class="{% cycle 'white' 'black'%}"></div>
{% endfor %}
さて、これはループ内で最初のdivタグが白になることを意味しますが、私が欲しいのは白と黒を交互に切り替えることです。つまり、白で開始し、次にループ内で最初のdivタグを黒で開始します。ここで達成するには?
この問題について、accept bug open があります。提案された変更を試して、それが機能するかどうかを確認してください。
試したくない場合、またはうまくいかない場合は、これを試してみてください。
{% cycle 'white' 'black' as divcolors %}
{% for o in something %}
{% for c in o %}
<div class="{% cycle divcolors %}"></div>
{% endfor %}
{% endfor %}
私が理解しているように、サイクルは白で始まり、ループ内で毎回値をループします(つまり、毎回白で再開するわけではありません)。
このようなものが機能する可能性があります(テストされていません):
{% for o in something %}
{% for c in o %}
{% ifchanged forloop.parent.counter %}
<div class="{% cycle 'white' 'black' %}"></div>
{% else %}
<div class="{% cycle 'black' 'white' %}"></div>
{% endifchanged %}
{% endfor %}
{% endfor %}