python - Django奇怪的模板条件渲染

标签 python django

这是我的 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/

相关文章:

python - Panda dataframe groupby 和回归计算

python - 为什么python有前自增操作符而没有后自增操作符?

python - 尝试使用 Vispy 在 3d 中旋转四边形

python - Django:创建版本号增加的模型对象

python - Django "No Module Named URLs"错误

为所有用户或仅为当前用户安装 Python?

python - 创建时与命名空间的Python多处理池交互

mysql - 外键约束不允许从 django 中的表中删除行

python - 您如何允许使用未经身份验证的请求访问 Django Rest Framework 中的某些 View ?

Django:form.is_valid 检查后,cleaned_data 缺少图像字段