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

使用Django模板extends与include后页面未显示预期内容的问题排查

问题原因及解决办法

问题出在模板继承与include的作用域冲突:

  • 你在base.html里用{% include %}引入了body.html,但content块是定义在被引入的body.html中。
  • Django的模板继承规则是:子模板(home.html)只能覆盖直接继承的父模板(base.html)中定义的块,无法覆盖通过include引入的子模板里的块。

修复方案(两种任选其一)

方案1:将content块移到base.html中

修改base.html:

{% load static %}
<!DOCTYPE html>
<html lang="en">
{% include 'weapons/head/head.html' %}
<body>
    {% block content %}{% endblock content %}
</body>
</html>

同时可以删除body.html,或根据需求调整其内容(移除里面的content块)。

方案2:调整模板继承结构

让body.html成为可继承的模板,修改base.html:

{% load static %}
<!DOCTYPE html>
<html lang="en">
{% include 'weapons/head/head.html' %}
{% extends 'weapons/body/body.html' %}
</html>

注:这种方式需要注意模板继承的层级逻辑,更推荐方案1的直接写法。

修改完成后重启服务,访问home.html就能正常显示Hello!了。


内容的提问来源于stack exchange,提问作者Python Django

相关产品推荐
方舟 Agent Plan

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

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