Django 实现子模版继承父模板

背景

Django的占位符,如果不继承父模板的内容,会被子模版所覆盖,有些业务场景子模版也需要使用到父模板中的内容

可以使用Django自带的标签{% block super %}来实现此效果

base.html

最基础html,相当于第一层html,block js 进行占位

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <!-- head content -->
</head>
<body>
    <!-- body content -->

    {% block js %}
    <!-- base js content -->
    <script src="base.js"></script>
    {% endblock %}
</body>
</html>

middle.html

中间html,相当于第二层html,在block js 中继承了base.html的内容

html 复制代码
{% extends "base.html" %}

{% block js %}
    {{ block.super }}
    <!-- middle js content -->
    <script src="middle.js"></script>
{% endblock %}

child.html

孩子html,相当于第三层html,在block js 中继承了middle.html的内容

html 复制代码
{% extends "middle.html" %}

{% block js %}
    {{ block.super }}
    <!-- child js content -->
    <script src="child.js"></script>
{% endblock %}

最终渲染的效果

最终能够包含所有被继承中所引入的js文件,而不是被最后一个覆盖

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <!-- head content -->
</head>
<body>
    <!-- body content -->

    <!-- base js content -->
    <script src="base.js"></script>
    <!-- middle js content -->
    <script src="middle.js"></script>
    <!-- child js content -->
    <script src="child.js"></script>
</body>
</html>
相关推荐
Mr数据杨1 天前
【Codex】用班级设置模块维护教学组织基础数据
django·codex·项目开发
斯班奇的好朋友阿法法1 天前
联调注意事项清单
django
forestqq1 天前
基于openeuler2403sp3的容器,打包django运行环境镜像
后端·python·django
俊昭喜喜里2 天前
Allegro/OrCad转换成立创eda文件
python·django
Mr数据杨2 天前
【Codex】用教材配置模块统一管理课程教材体系
django·codex·项目开发
Mr数据杨2 天前
【Codex】用APP绑定教程模块规范移动端接入指引
java·前端·javascript·django·codex·项目开发
阿豪只会阿巴2 天前
【没事学点啥】TurboBlog轻量级个人博客项目——项目介绍
javascript·python·django·html
Mr数据杨3 天前
【Codex】用PPT文案额外描述优化课件生成细节
java·javascript·django·powerpoint·codex·项目开发
Mr.朱鹏3 天前
5.LangChain零基础速通-LCEL链式调用
python·langchain·django·大模型·llm·virtualenv
斯班奇的好朋友阿法法3 天前
IP白名单 + 预共享密钥跳转服务
django