Jinja {% 扩展 %}

Mig*_*nes 5 html django jinja2

好的,所以我有了第一个 HTML 文件(header.html):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>M4A</title>
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'css/header.css' %}" />
<link rel="icon" href="../../static/image/logo.png">
</head>
<body class="body" style="background-color:#f9f9f9">
{% block content %}
    <ul>
        <li><a href="/"><img src="../../static/image/logoRect.png" width="25"> </a></li>
        <li><a href="/movies">Movies</a></li>
        <li><a class="left" href="">Search</a></li>
        <li><a class="left" href="/profile/">Profile</a></li>
        <li><a class="left" href="#about">Explore</a></li>
    </ul>
{% endblock %}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后我有另一个(home.html):

{% extends "START/header.html" %}

{% block content %}

<p> TEST</p> <!-- for example -->

{% endblock %}
Run Code Online (Sandbox Code Playgroud)

但是当运行第二个时它并没有真正扩展,它看起来像是替换了另一个 HTML 文件正文的内容。背景颜色仍然是我的 css 文件中的颜色,所以我确定它正在阅读它。我错过了什么?

lap*_*ira 7

当您在 home.html 中使用与 header.html 中相同的块标记时,您正在替换正文

{% block content %}
Run Code Online (Sandbox Code Playgroud)

如果您不想替换它,您应该使用不同的名称。

此外,您可以使用:

{{ block.super() }}
Run Code Online (Sandbox Code Playgroud)

如果您想扩展块内容数据,请注意它与扩展模板是不同的问题。