Как разобрать переменную django как синтаксис Jinja2 в HTML файле?

В настоящее время я работаю над проектом Django, и чтобы обобщить и упростить объем содержимого в HTML-файле, я создал тег шаблона, который генерирует синтаксис для размещения в HTML-файле.

Если исходный синтаксис был:

{% for i in results %}{{ i.a }},{{ i.b }},{{ i.c }}
{% endfor %}

шаблонный тег generate_for_loop создаст этот синтаксис и выведет вышеприведенное. Следовательно, мне просто нужно заменить приведенный выше цикл for на

{% generate_for_loop "results" "a" "b" "c" %}

Тег шаблона правильно генерирует ожидаемый синтаксис, однако у меня просто есть цикл for как переменная в HTML-файле. Если я оберну шаблонный тег generate_for_loop внутри тегов <h1> и выведу его на печать, я увижу "{% for i in results %}{{ i.a }},{{ i.b }},{{ i.c }} {% endfor %}", вместо того, чтобы цикл for получил оценку.

Мой вопрос в том, что я могу сделать, чтобы снова разобрать эту строку/переменную в HTML-файле? Есть ли другой альтернативный/лучший подход для достижения функциональности, которую я пытаюсь создать здесь?

Возможно, этот код может упростить ваш код HTML, попробуйте изменить код тега шаблона generate_for_loop, как в этом примере

@register.simple_tag
def generate_for_loop(object):
    list = [str(data) for key, data in object.items()]
    content = ",".join(list)
    return content

и вызовите тег в шаблоне HTML вот так с помощью wrap h1

<h1> {% generate_for_loop results %} </h1>
Вернуться на верх