django - 如果我使用 {% extends %},Django 会忽略子模板中的内容
问题描述
我正在使用位于 myproject/myproject/templates 目录中的名为“base.html”的父模板。我渲染了子模板,一切都很顺利,除了我写 {% extends %} 来显示父模板。Django 的行为非常奇怪。找了好久才发现,即使在注释里面写了与父模板相关的extends,block,endblock这些东西,Django还是会忽略子模板中的内容,显示为空屏幕。如果我故意在模板的内容中出现语法错误,Django 会抛出异常(所以它真的会读取内容),但如果没有错误,浏览器只会从父模板中获取代码(我发现了这个使用检查)。
这是代码:
子模板:
{% extends "education/base.html" %}
{% block barraup %}
{{block.super}}
{%endblock%}
{% block barradown %}
{{block.super}}
{%endblock%}
{% load static %}
<link rel="stylesheet" type="text/css" href = "{% static 'principal/principal.css' %}" />
<div id="presentacion">
...content
</div>
如果没有错误,浏览器甚至不会读取最后一个 div“presentacion”(它不会出现在 Inspect 屏幕中出现的 html 中)。
父模板:
{% load static %}
<head>
<link rel="stylesheet" type="text/css" href = "{% static 'education/base.css' %}">
</head>
<body>
<div id="barraup">
{% block barraup %}
...content
{% endblock %}
</div>
<div id="barradown">
{% block barradown %}
...content
{% endblock %}
</div>
</body>
</html>
预先感谢您的帮助。
解决方案
子模板中的所有内容都必须位于父模板中定义的块内 - 否则无处可放。
您可能应该在父级中的这两个 div 之间定义一个“内容”块,并将子内容包装在其中。
推荐阅读
- material-ui - 如何使用 Material UI 在 Button 中应用内联 CSS
- matlab - 动态更改属性属性
- jquery - 用jQuery打开div标签后插入图片标签
- r - 包构建在 R 3.6.0(开发)上失败,但在 3.5.5(发布)上失败
- node.js - Firebase 云函数服务本地文件以供下载
- java - 使用原始类型的成员变量,然后“按需”转换为适当的类型
- javascript - 使用 javascript onclick 激活 Bootstrap 模式
- docker - docker ps 显示空列表 - 尽管 docker 告诉容器存在
- ios - 使用领域对象滚动到 UITableView 中最新插入的行
- laravel - mkdir():在 IIS8 上的 laravel 上导出 Excel 文件时文件存在