这是我的 django 模板文件:
{% if chart %}
{% block chart_content %}
// some for loop
{% endblock %}
{% else %}
{% block content %}
{% endblock %}
{% endif %}
这是我的“base.html”:
<div class = "container">
{% block content %}
{% endblock %}
</div>
{% block chart_content %}
{% endblock %}
当上述模板渲染时,“if”和“else”内容都会出现在页面中。换句话说,“if”和“else”都会被评估。谁能告诉我问题出在哪里?
最佳答案
来自Django template if statement always evaluates to true :
您不能像 if 那样将控制流标签包裹在 block 周围。您的问题是子模板的 block 数据定义仅仅因为它在那里而被使用。
您可以通过将 if 标记放在 block 数据内来修复它。如果您想在列表为空时继承父级的内容,请添加一个扩展为 {{ block.super }} 的 else case。
关于python - Django奇怪的模板条件渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31421606/