You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Django基础模板中使用多个{% block content %}模板块?

Django模板中能否使用多个同名block?

不行,同一个基础模板里不能存在多个同名的{% block %}。

原因:

Django的模板继承机制是通过block的唯一名称来匹配替换内容的。如果两个block都叫content,当子模板中编写{% block content %}时,Django无法区分你要替换哪一个,最终只会生效最后定义的那个block,完全达不到你在不同区域分别填充内容的需求。

正确的做法:

给每个block设置独一无二的名称,比如把第二个block命名为summaries,这样子模板就能精准地对不同区域进行内容填充。

基础模板示例:

<html>
<body>
<nav> navbar </nav>
<div class="content">
{% block content %}
{% endblock %}
</div>

<div class="summaries">
{% block summaries %}
{% endblock %}
</div>
</body>
</html>

子模板示例:

{% extends "你的基础模板路径.html" %}

{% block content %}
这里填写主内容区的内容,比如文章列表、详情内容等
{% endblock %}

{% block summaries %}
这里填写摘要区的内容,比如热门推荐、分类导航等
{% endblock %}

如果某个block你不需要在子模板中修改,完全可以留空,或者在基础模板中写入默认内容——子模板不重写该block时,就会显示基础模板里的默认内容。

内容的提问来源于stack exchange,提问作者Ayat Rahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:18:27