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>
相关推荐
天天进步20156 小时前
Python实战--基于Django的企业资源管理系统
开发语言·python·django
再吃一根胡萝卜21 小时前
使用 squashmigrations 命令优化 Django 迁移文件
python·django
BYSJMG1 天前
计算机大数据毕业设计推荐:基于Spark的气候疾病传播可视化分析系统【Hadoop、python、spark】
大数据·hadoop·python·信息可视化·spark·django·课程设计
大得3691 天前
django生成迁移文件,执行生成到数据库
后端·python·django
Q_Q19632884752 天前
python的电影院座位管理可视化数据分析系统
开发语言·spring boot·python·django·flask·node.js·php
BYSJMG2 天前
计算机大数据毕业设计推荐:基于Hadoop+Spark的食物口味差异分析可视化系统【源码+文档+调试】
大数据·hadoop·分布式·python·spark·django·课程设计
甄超锋2 天前
python sqlite3模块
jvm·数据库·python·测试工具·django·sqlite·flask
Q_Q5110082853 天前
python的软件工程与项目管理课程组学习系统
spring boot·python·django·flask·node.js·php·软件工程
wyiyiyi4 天前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
千层冷面5 天前
Flask ORM 查询详解:Model.query vs db.session.query vs db.session.execute
数据库·python·django·flask