Как разобрать переменную 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>