Jinja2中有多个同名的块

Rei*_*ica 32 html python templates jinja2

Jinja2中,我有一个这样的基本模板:

<title>{% block title %}{% endblock %} - example.com</title>
[...]

<h1> 
  {% block title %}{% endblock %} - example.com
</h1>
Run Code Online (Sandbox Code Playgroud)

然后,Jinja2失败并显示以下消息:

  lines = [self.message, '  ' + location]
: block 'title' defined twice
Run Code Online (Sandbox Code Playgroud)

现在必须明确我要做的事情 - 在两个地方拥有相同的标题:TITLE标签和H1标签,但标题的一部分实际上是由其他派生模板提供的.

人们通常如何实现这一目标?

nos*_*klo 68

如此处所述,定义块会在特殊的"self"对象中创建一个带有块名称的宏:

<title>{% block title %}{% endblock %} - example.com</title>
[...]

<h1> 
  {{ self.title() }} - example.com
</h1>
Run Code Online (Sandbox Code Playgroud)