Django中{% extends 'base.html' %}指令失效问题求助
模板继承失效问题的解决方案
错误原因及修复方案
1. extends指令位置错误
{% extends %}必须是模板文件的第一行代码,不能有任何前置内容(包括<!DOCTYPE html>)。home.html中extends前的DOCTYPE会导致模板引擎无法识别继承关系,直接忽略extends指令。
修改后的home.html:
{% extends 'base.html' %} {% block head %} Home {% endblock %} {% block body %} <h1>HomeHome</h1> {% endblock %}
2. base.html HTML结构不完整
base.html缺少<html>、<head>起始标签,且</body>没有对应的起始标签,结构不完整会导致模板渲染异常,无法正确替换block内容。
修改后的base.html:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous"> {% block head %} Base {% endblock %} </head> <body> {% block body %} <h1>BaseBase</h1> {% endblock %} </body> </html>
内容的提问来源于stack exchange,提问作者Nornik515
相关产品推荐
相关产品推荐

