Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Django块页标题_Html_Django - Fatal编程技术网

Html Django块页标题

Html Django块页标题,html,django,Html,Django,我正在尝试为每个页面创建自定义页面标题,但未成功。下面是我所有html页面的一般设置(我认为可以,但没有),如果有任何解决方案,我将不胜感激 head.html something something <title>{% block title %}Default Value{% endblock title %}</title> something something 某物 {%block title%}默认值{%endblock title%} 什么东西 base

我正在尝试为每个页面创建自定义页面标题,但未成功。下面是我所有html页面的一般设置(我认为可以,但没有),如果有任何解决方案,我将不胜感激

head.html

something something
<title>{% block title %}Default Value{% endblock title %}</title>
something something
某物
{%block title%}默认值{%endblock title%}
什么东西
base.html

<!DOCTYPE html>
<html>

{% include "head.html" %}

<body>
    {% include 'header.html' %}

    {% block content %}
    {% endblock content %}

    {% include 'footer.html' %}
    {% include 'scripts.html' %}
</body>
</html>

{%include“head.html”%}
{%include'header.html%}
{%block content%}
{%endblock内容%}
{%include'footer.html%}
{%include'scripts.html%}
404 html文件

{% extends 'base.html' %}
{% load static %}

{% block title %}404{% endblock title %}

{% block content %}
<div id="main404">
        <div class="fof">
                <h1>Error 404 :(</h1>
        </div>
</div>
{% endblock content %}
{%extends'base.html%}
{%load static%}
{%block title%}404{%endblock title%}
{%block content%}
错误404:(
{%endblock内容%}
目前它仍然显示head.html中指示的默认值。我想使用上面尝试的块自定义每个页面的页面标题


谢谢。

404 html文件扩展了
base.html
而不是
head.html
,这意味着它不会填充
head.html
的块
head.html
包含在
base.html
中,这意味着它是单独编译和呈现的,并且不会被扩展
base.htm的模板扩展l

引用自:

include标记应被视为“render”的一个实现 此子模板并包含HTML”,而不是“解析此子模板” 并包含其内容,就好像它是父对象的一部分” 包含的模板之间没有共享状态–每个 include是一个完全独立的渲染过程

最简单的方法是将块放入
base.html

<!DOCTYPE html>
<html>

<head>
    something something
    <title>{% block title %}Default Value{% endblock title %}</title>
    something something
</head>
<body>
    {% include 'header.html' %}

    {% block content %}
    {% endblock content %}

    {% include 'footer.html' %}
    {% include 'scripts.html' %}
</body>
</html>

什么东西
{%block title%}默认值{%endblock title%}
什么东西
{%include'header.html%}
{%block content%}
{%endblock内容%}
{%include'footer.html%}
{%include'scripts.html%}

只有子模板才能覆盖
标记,这些子模板使用
扩展
标记。标题的块标记嵌套在include template语句(head.html)中。如果您有一个大的head块需要包含在其他模板中,那么我可以看到继承很有帮助

head.html base.html

{%block head%}
{%include“head.html”%}
{%endblock%}
{%include'header.html%}
{%block content%}
{%endblock内容%}
{%include'footer.html%}
{%include'scripts.html%}
404.html
{%extends'base.html%}
{%load static%}
{%block head%}
{%include“head_404.html”%}
{%endblock%}
{%block content%}
错误404:(
{%endblock内容%}
您可以跳过head_404.html文件,也可以在404.html模板中简单地定义head-children标记

{% extends 'base.html' %}
{% load static %}

{% block head %}

    ... stuff

    <title>404</title>

{% endblock %}

{% block content %}
<div id="main404">
        <div class="fof">
                <h1>Error 404 :(</h1>
        </div>
</div>
{% endblock content %}
{%extends'base.html%}
{%load static%}
{%block head%}
东西
404
{%endblock%}
{%block content%}
错误404:(
{%endblock内容%}

保持文件结构不变的一种方法是在django的include方法中将title作为参数发送,如下所示:

按如下方式更新您的文件:

base.html

something something
<title>{{title}}</title>
something something
创建一个名为headcontent的新块,并包含带有默认标题的head.html


{%block headcontent%}{%include head.html with title=“Default title”%}{%endblock%}
{%include'header.html%}
{%block content%}
{%endblock内容%}
{%include'footer.html%}
{%include'scripts.html%}

404.html

something something
<title>{{title}}</title>
something something
将headcontent块的值作为head.html提供,标题为您的愿望,在本例中为404

{%extends'base.html%}
{%load static%}
{%block headcontent%}{%include head.html,title=“404”}{%endblock%}
{%block content%}
错误404:(
{%endblock内容%}

head.html

something something
<title>{{title}}</title>
something something
某物
{{title}}
什么东西
要了解有关使用包含参数检查的更多信息,请执行以下操作:

{% extends 'base.html' %}
{% load static %}

{% block head %}

    ... stuff

    <title>404</title>

{% endblock %}

{% block content %}
<div id="main404">
        <div class="fof">
                <h1>Error 404 :(</h1>
        </div>
</div>
{% endblock content %}
<!DOCTYPE html>
<html>

{% block headcontent %}{% include head.html with title="Default Title" %}{% endblock %}
<body>
    {% include 'header.html' %}
    {% block content %}
    {% endblock content %}
    {% include 'footer.html' %}
    {% include 'scripts.html' %}
</body>

</html>
{% extends 'base.html' %}
{% load static %}

{% block headcontent %}{% include head.html with title="404" %}{% endblock %}
{% block content %}
<div id="main404">
        <div class="fof">
                <h1>Error 404 :(</h1>
        </div>
</div>
{% endblock content %}
something something
<title>{{title}}</title>
something something