django - 如何将我的 html 导航栏添加到 django 中的另一个 html 文件中
问题描述
我对 Django 还是很陌生,我想将导航栏的 HTML 及其各自的 CSS 添加到我的基本 HTML 文件中。这是我到目前为止所做的:
在 app/base.html 中:
{% extends "BritIntlSchl/navbar.html" %}
{% load static %}
<!DOCTYPE html>
<html>
<head>
<title>page title</title>
<link href="{% static 'appname\stylebase.css' %}" rel="stylesheet">
<link href="{% static 'appname\navbarstyles.css'}" rel="stylesheet" %}">
{% block head-content %}{% endblock head-content %}
</head>
{% block nav%}{% endblock nav %}
{% block content1 %}{% endblock content1 %}
</body>
</html>
在 app/navbar.html 中:
{% block nav%}
<div class="wrap">...</div>
{% endblock nav%}
我在这里几乎迷路了。我确信将{% block nav%} 放在导航栏周围没有任何作用。你建议我怎么做?
我正在使用 Django 2.1。
解决方案
当一个人使用extend
模板标签时,不能在任何块之外有任何 HTML,因为这样就会混淆将这个 HTML 放在哪里(所以实际上甚至不会考虑 HTML)。因此,当您最多扩展/navbar.html
时,您可以填充您实际上覆盖的命名块nav
并且什么都不填充。您要做的是使用include
模板标签将导航栏包含到base.html
:
base.html:
{% load static %}
<!DOCTYPE html>
<html>
<head>
<title>page title</title>
<link href="{% static 'appname\stylebase.css' %}" rel="stylesheet">
<link href="{% static 'appname\navbarstyles.css'}" rel="stylesheet" %}">
{% block head-content %}{% endblock head-content %}
</head>
{% block nav %}{% include 'app/navbar.html' %}{% endblock nav %}
{% block content1 %}{% endblock content1 %}
</body>
</html>
注意:我们放在
{% block nav %}
那里不是因为navbar.html
会填充它,而是因为某些页面扩展base.html
可能需要自定义导航栏。
导航栏.html:
<div class="wrap">...</div>
推荐阅读
- linux - 在一个巨大的文件中迭代很长的行
- git - Gitlab:不能只推送到master
- sonarqube - SonarQube - 排除文件和文件夹 [整个 .Net 项目 (csproj)]
- java - 线程构造函数的实现
- javascript - npm 模块有多个子模块,每个子模块都有一组功能
- javascript - Nodejs fs.createReadStream 事件错误
- r - 查找三个或更多数据帧之间的共同值
- c# - 将成员函数作为委托参数传入
- macos - MAMP 升级在应用程序中生成新文件夹
- java - 迭代和条件与 Java 中的许多 ActionListener 类