gpt4 book ai didi

django - 为什么 Django 不允许包含内部 block ?

转载 作者:行者123 更新时间:2023-12-02 17:27:42 25 4
gpt4 key购买 nike

我可能在这里遗漏了一些东西,但是否有特殊原因 Django 不允许这样做,即使上下文已传递给 include?能够在 include 中呈现一个 block 似乎很有用(为了可读性),因为它使标记不那么密集——有点类似于 Angular 使用指令的方式。

是否有另一个模板标签可以完成此任务?


示例。在下图中,navbar 是站点范围的,但 navbar2 是 View 相关的并且驻留在包含的 content.html 中。这允许更整洁的标记,因为您没有将每个 block 都加载到骨架中......但是它不起作用。

Basic Admin Dashboard

base.html

<html>  
<head>
...
</head>
<body>
<nav>
{% block navbar %}
{% endblock %}
</nav>

{% include "content.html" %}

{% include "footer.html" %}
</body>
</html>

content.html

<header>{{ request.view_name }}</header>

<nav>
{% block navbar2 %}
{% endblock %}
</nav>

{% block content %}
{% endblock %}

model-list.html

{% extends "base.html" %}

{% block navbar2 %}
{% for action in view_actions %}
<li>{{ action }}</li>
{% endfor %}
{% endblock %}

最佳答案

因为 include 不是从基础继承的,所以它没有要遵守的契约。

通过扩展,您声明您的模板将由基类正在寻找的构建 block 组成。

关于django - 为什么 Django 不允许包含内部 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37333182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com