以SO本身为例,标题可以设置为
<title>{% block post_name %}{% block% } - StackOverflow</title>
但是,如果未定义post_name,则标题将变为- StackOverflow
且超出-
如何测试块是否已扩展,以便我可以有条件地设置-
答案 0 :(得分:2)
根据子模板定义的块,无法使父模板的行为有所不同。要获得所需的输出,您必须从父模板中删除-
,并在每个子模板的-
块的末尾添加post_name
。
或者,如果您希望在某些子模板中使用- StackOverflow
后缀而不在其他子模板中,则可以将StackOverflow
移动到父模板的post_name
块中,然后从内部引用该文本使用{{ block.super }}
变量的子模板。
在父模板中:
<title>{% block post_name %}StackOverflow{% block %}</title>
在子模板中:
{% block post_name %}Title of post goes here - {{ block.super }}{% block %}