【发布时间】:2017-03-03 20:59:18
【问题描述】:
在我的 Django base.html 模板中,我有一个 title 块:
<html>
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
在页面模板中,我使用该块中其<h1> 页面标题中的文本,因此它也出现在<title> 标记中,例如:
{% extends 'base.html' %}
{% block content %}
<h1>{% block title %}Hello world!{% endblock %}</h1>
{% endblock %}
一切正常。但是如果我想像这样在页面的<h1> 中使用 HTML 标记...
{% extends 'base.html' %}
{% block content %}
{% block title %}<b>Hello</b> world!{% endblock %}
{% endblock %}
...这些标签也会出现在<title> 中,这是不允许的。
除了有两个版本的标题之外还有其他方法吗:一个在<h1> 中,一个在{% block title %} 中的无 HTML 版本?我不认为有办法从块中剥离 HTML?
【问题讨论】:
-
我能想到的唯一解决方法是给
h1中的块一个不同的名称。 -
是的,这 - 有两个不同命名的块 - 是我希望避免的。 90% 的页面只需要一个
title块。但少数在<h1>中有HTML。 -
如果您从视图中传递值,您可以使用
striptags模板过滤器。 -
@xyres 我没有从视图中传递值;这是模板中的 text/html,如图所示。
-
我很想知道为什么我的问题被否决了...