django - Django 嵌套模板
问题描述
为了保持 DRY,我现在正在设置我的 Django 项目 HTML 文件。我已成功地将大多数重复信息提取到我的 base.html 页面。在我的大多数(但不是全部)页面上,我的内容显示在一个通用“面板”中,该面板基本上只是一个带有样式的容器设置,但它有一些 div 标签,所以它看起来有点难看,而且我不得不在每一页上多次输入完全相同的代码。
我的想法是将其提取到“panel.html”,然后在需要时调用它,例如,某些页面可能只有一个“面板”,而我的仪表板(它是一个管理站点)可能有 15 个以上。因此,每次我需要设置“面板”时不必输入所有这些代码,这似乎是一个更好的主意,也更简洁。
我的理想页面看起来像..
{% extends 'base.html' %}
{% block content %}
{% extends 'panel.html' %}
{% block panel_content %}
Panel content...
{% endblock panel_content %}
{% extends 'panel.html' %}
{% block panel_content %}
Second panel content
{% endblock panel_content %}
{% endblock content %}
我知道我不能多次使用扩展,但我只是将它用作我想要实现的示例。
我可能会在我的网站上拥有数百个相同的“面板”,但每个面板都包含不同的内容,如果我可以将一个存储在 HTML 文件中的某个位置并根据需要多次调用它,那将会更加简洁。
有没有办法做到这一点?
解决方案
您可以使用include
{% include "panel.html" %}
我应该提到,过多include
的语句会产生性能问题。
推荐阅读
- bash - 拖放文件夹作为 Mac 命令文件的输入
- javascript - 如何保存 html 表单输入数据?
- php - 如何在不使用另一个数组的情况下删除数组中的重复项?
- java - 我们可以在休眠 4.1.10 FINAL 中使用 MySql8Dialect 吗?
- javafx - 无法强制 JavaFX TableView 从另一个窗口/控制器刷新
- post - 使用 GET 请求检索发送到 requestbin.fullcontact.com 的数据
- javascript - 这个 JavaScript 的“rel”应该是什么?
- dart - Flutter AbsorbPointer 与 IgnorePointer 的区别
- python - 如何在 Django 管理类中检查图像宽度和高度?
- php - SQL HAVING 找不到未知列