Джинджа / Джанго для диапазона петель не работает - PullRequest
0 голосов
/ 07 ноября 2018

Я создаю шаблон django для дублирования изображений на основе аргумента, переданного из представления; Затем шаблон использует Jinja2 в цикле for для дублирования изображения.

НО, я могу заставить это работать, только передав список, который я делаю в представлении. Если я пытаюсь использовать диапазон дзиндзя, я получаю сообщение об ошибке («Не удалось разобрать остаток: ...»).

Чтение эта ссылка , клянусь, я использую правильный синтаксис.

шаблон

{% for i in range(variable) %}
    <img src=...>
{% endfor %}

Я проверил переменную, которую передавал; это тип int. Черт, я даже пытался избавиться от переменной (для тестирования) и пытался использовать жестко запрограммированное число:

{% for i in range(5) %}
    <img src=...>
{% endfor %}

Я получаю следующую ошибку:

Не удалось разобрать остаток: '(5)' из 'range (5)'

Если я передам шаблону список в словаре аргументов (и использую этот список вместо оператора range), это сработает; изображение повторяется сколько угодно раз.

Что мне не хватает? Документы по Jinja ( для цикла и range ) и предыдущая ссылка все говорят мне, что это должно работать с диапазоном и переменная.

1 Ответ

0 голосов
/ 07 ноября 2018

Оооочень .... основываясь на комментарии Франди о том, что это не поддерживается автоматически Django, и, следуя их ссылке , которая приводит к этой ссылке , я нашел, как написать ваш собственный фильтр.

Внутри views.py :

from django.template.defaulttags import register

@register.filter
def get_range(value):
    return range(value)

Тогда внутри шаблон :

{% for i in variable|get_range %}
    <img src=...>
{% endfor %}
...