{% 块标题 %} <title> 主页 {% 结束块 %} </title> 未被其他页面覆盖?



这是我的基本文件

{% load static %}
{% include "feed/header.html" %}
{% block content%}
{% endblock %}
{% include "feed/footer.html" %}

这是我的标题,其中包括标题:

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
{% block title %} Home {% endblock %}
</title>

因此,当我尝试在详细信息页面中覆盖标题时,它始终显示标题的标题,即主页(不更改(,但不会显示我覆盖的详细信息页面的标题。 以下是我在详细信息页面中使用的代码:

{% extends 'feed/base.html'%}
{% block title %} Details {% endblock %}
{% block content %}
some views
{% endblock %}

所以帮我找出这个问题。

正如文档所述,您只能"覆盖"直接或间接扩展的模板中定义的块(即从扩展自身的模板扩展(:

包含

标记应被视为"呈现此子模板并包含 HTML"的实现,而不是"解析此子模板并包含其内容,就好像它是父模板的一部分一样"。这意味着包含的模板之间没有共享状态 - 每个包含都是一个完全独立的渲染过程。

块在包含之前对其进行评估。这意味着包含来自另一个块的模板将包含已评估和呈现的块 - 而不是可以被扩展模板等覆盖的块。

因此,您需要将块内联到父模板中。例如:

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
{% block title %} Home {% endblock %}
</title>
</head>
{% block content%}
{% endblock %}
{% include "feed/footer.html" %}

然后从而在"子模板"中覆盖它。

include标签的文档明确表示这不起作用:

块在包含之前对其进行评估。这意味着包含来自另一个块的模板将包含已评估和呈现的块 - 而不是可以被扩展模板等覆盖的块。

相关内容

最新更新