<html>
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<h1>{% block title %}{% endblock %}</h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是我的模板,或多或少.h1标题始终与标题标记相同.上面的代码片段无效,因为不能有两个具有相同名称的块.如何处理这个而不重复自己?
编辑澄清:我有大量的子模板继承自这一个模板,因此为每个模板创建一个新的{{title}}变量不是一个很好的解决方案.以前我把它设置成这样:
base.html文件:
<title>{% block title %}{% endblock %}</title>
Run Code Online (Sandbox Code Playgroud)
然后在base_view.html(扩展base.html):
<h1>{% block title %}{% endblock %}</h1>
Run Code Online (Sandbox Code Playgroud)
然后在base_object.html(扩展base_view.html):
{% block title %}my title goes here{% endblock %}
Run Code Online (Sandbox Code Playgroud)
它只是以某种方式工作.我重构了我的模板,所以只有base.html和base_object.html我怎样才能恢复这个功能?
我做的事情如下:
{% extends 'base.html' %}
{% url myapp.views.dashboard object as object_url %}
{% block sidebar %}
... {{ object_url }} ...
{% endblock %}
{% block content %}
... {{ object_url }} ...
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
Django文档说url templatetag可以在上下文中定义变量,但是我object_url在以下块中没有得到任何值.
如果我将url templatetag放在每个块的开头,它可以工作,但我不想"重复自己".
谁知道更好的解决方案?