我有以下模板“base.html”
{% set list_of_ids = ['id1', 'id2', 'id3'] %}
{% for id in list_of_ids %}
<div class="content">
{% block id %}
{% endblock %}
</div>
{% endfor %}
是否可以在另一个模板“id1.html”中执行此操作
{% extends "base.html" %}
{% block id1 %}
<p>This is my content for id1 block! Different from id2 and id3 blocks</p>
{% endblock %}
最佳答案
这是不可能的。 block 名称已经是名称,您不能从变量中为它们分配名称。
include
可以采用变量。解决方案是包含不同的模板名称并定义模板本身,而不是模板中的 block 。
base.html
:
{% for id in ids %}
{% include 'id' ~ id ~ '.html' %}
{% endfor %}
id1.html
:
<p>id1 content</p>
关于python - 在 Jinja2 中使用变量名称作为 block 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44703850/