Wagtail/Django 形式的模板标签的目的和使用 {% block body_class %}template-homepage{% endblock %}
Purpose and use of Wagtail/Django template tags of the form {% block body_class %}template-homepage{% endblock %}
在 Wagtail 文档 (Your first Wagtail site) 中,我们被告知要创建一个 homepage.html 模板,如下所示:
{% extends "base.html" %}
{% load wagtailcore_tags %}
{% block body_class %}template-homepage{% endblock %}
{% block content %}
{{ page.body|richtext }}
{% endblock %}
在上面的代码中,标签 {% block body_class %}template-homepage{% endblock %}
应该做什么?我在教程的文本中找不到任何提及。
教程继续指导我们创建另外两个模板,blog_index_page 和 blog_page 模板,这两个模板都包含 {% block body_class %}
标签。同样,我在文档中找不到所有这些行的提及,更不用说对它们的解释了 used/modified.
在文档中搜索“body_class”只找到刚才提到的三个代码块,还有一个提到:在 1.2 版发行说明中,在“新功能 - 次要功能”下的符号: “在默认主页模板中简化了 body_class
。”
关于我应该如何处理这些标签的任何见解?这些教程模板中的标签中包含的文本(例如上面代码中的“模板主页”)有什么特殊含义或功能(如果有)?
在 base.html
中你有一个看起来像 <body class="{% block body_class %}{% endblock %}">
的部分。您在模板中添加到该块中的内容将呈现到该部分中。
例如,假设在您的设计中您的 <body>
包含底部边距,但是在特定模板上您不希望那里有边距并创建 css class .remove-margin { margin-bottom: 0 };
然后您可以将 {% block body_class %}remove-margin{% endblock %}
添加到您的模板中,它会将 class 应用到 <body>
标记,而无需修改该模板的 base.html
模板用例。
您也可以创建自己的。在 base.html
中添加一个自定义块,例如 {% block my_custom_block %}{% endblock %}
,然后在您的模板中包含一些文本或 html 在 my_custom_block
中,它会在您放置该部分的任何地方呈现在基本模板中。
为了帮助用图片澄清上面的正确答案,因为我也想知道那个块标签在做什么,这是呈现的 html。根据上面的回答,这是标准的 Django。
在 base.html 你有这一行:
<body class="{% block body_class %}{% endblock %}">
替换发生在 home_page.html 模板中:
{% block body_class %}template-homepage{% endblock %}
它呈现如下截图:
<body class="template-homepage">
在 Wagtail 文档 (Your first Wagtail site) 中,我们被告知要创建一个 homepage.html 模板,如下所示:
{% extends "base.html" %}
{% load wagtailcore_tags %}
{% block body_class %}template-homepage{% endblock %}
{% block content %}
{{ page.body|richtext }}
{% endblock %}
在上面的代码中,标签 {% block body_class %}template-homepage{% endblock %}
应该做什么?我在教程的文本中找不到任何提及。
教程继续指导我们创建另外两个模板,blog_index_page 和 blog_page 模板,这两个模板都包含 {% block body_class %}
标签。同样,我在文档中找不到所有这些行的提及,更不用说对它们的解释了 used/modified.
在文档中搜索“body_class”只找到刚才提到的三个代码块,还有一个提到:在 1.2 版发行说明中,在“新功能 - 次要功能”下的符号: “在默认主页模板中简化了 body_class
。”
关于我应该如何处理这些标签的任何见解?这些教程模板中的标签中包含的文本(例如上面代码中的“模板主页”)有什么特殊含义或功能(如果有)?
在 base.html
中你有一个看起来像 <body class="{% block body_class %}{% endblock %}">
的部分。您在模板中添加到该块中的内容将呈现到该部分中。
例如,假设在您的设计中您的 <body>
包含底部边距,但是在特定模板上您不希望那里有边距并创建 css class .remove-margin { margin-bottom: 0 };
然后您可以将 {% block body_class %}remove-margin{% endblock %}
添加到您的模板中,它会将 class 应用到 <body>
标记,而无需修改该模板的 base.html
模板用例。
您也可以创建自己的。在 base.html
中添加一个自定义块,例如 {% block my_custom_block %}{% endblock %}
,然后在您的模板中包含一些文本或 html 在 my_custom_block
中,它会在您放置该部分的任何地方呈现在基本模板中。
为了帮助用图片澄清上面的正确答案,因为我也想知道那个块标签在做什么,这是呈现的 html。根据上面的回答,这是标准的 Django。
在 base.html 你有这一行:
<body class="{% block body_class %}{% endblock %}">
替换发生在 home_page.html 模板中:
{% block body_class %}template-homepage{% endblock %}
它呈现如下截图:
<body class="template-homepage">