0

我有一个模板块来覆盖继承模板中的类名。来自块覆盖的结果 html 显示了恶意文本。

基础.html:

<html>
<body>
    {% block content %}
    <h1 class="{% block heading_style %}Base{% endblock %}">Base Page Heading</h1> 
    {% endblock%}
</body>
</html>

儿童.html:

{% extends "Base.html" %}

{% block content %} 
{{block.super}}
{% block heading_style %}Login{% endblock %}
{% endblock %}

块标题样式是我关心的块。

结果html:

结果 html

如您所见,h1 类已替换为“登录”,但它也开始在 h1 标记后将“登录”显示为文本。

我正在使用 django 1.3.3 和 Eclipse 与 pydev。我还检查了 html 文件的编码,它们是utf-8

4

3 回答 3

1

您已将块的定义放在块heading_style子项中。所以它被用于两件事:作为 中的文本内容,以及填充父级中的块。contentcontentheading_style

移到块定义heading_style之外content,应该没问题。

于 2012-09-27T11:43:37.307 回答
0

缺少一个端块

{% block content %} 
{{block.super}}
{% block heading_style %}Login{% endblock %} {% endblock %}
于 2012-09-27T09:43:31.313 回答
0

我不确定覆盖块和嵌套子块以及{{block.super}}做事的良好组合。可能你想重新考虑你的模板而不依赖它。

这是与此相关的 django 票证(不确定是否已修复){{ block.super }} 不适用于嵌套的 {% block %} 语句

于 2012-09-27T10:11:43.337 回答