Списки конкатенаций в JINJA2
Как я могу объединить две переменные списка в jinja2?
НАПРИМЕР
GRP1 = [1, 2, 3]
GRP2 = [4, 5, 6]
{# This works fine: #}
{% for M in GRP1 %}
Value is {{M}}
{% endfor %}
{# But this does not: #}
{% for M in GRP1 + GRP2 %}
Value is {{M}}
{% endfor %}
Итак, я попытался объединить два списка, используя + (как и в Python), но оказывается, что они не являются списками, а объектами python xrange
:
jijna2 error: unsupported operand type(s) for +: 'xrange' and 'xrange'
Есть ли способ для меня перебрать конкатенацию GRP1 и GRP2 в том же для цикла?
Ответы
Ответ 1
AFAIK вы не можете сделать это, используя собственный шаблон Jinja2. Вам лучше создать новый комбинированный итеративный и передать его вашему шаблону, например:
from itertools import chain
x = xrange(3)
y = xrange(3, 7)
z = chain(x, y) # pass this to your template
for i in z:
print i
Согласно комментариям, вы можете явно преобразовать итерации в списки и объединить их:
{% for M in GRP1|list + GRP2|list %}