【发布时间】:2012-10-07 03:40:19
【问题描述】:
我有一个 django 模板,可用于许多视图。该模板有一个消息块,用于通知用户应该引起他们注意的任何事情。是否发送消息取决于视图。有些视图可能会向模板发送message 变量,而其他视图可能不会。
view_1:
message = "This is an important message"
render_to_response("my_template.html",
{'message':message, 'foo':foo, 'bar':bar},
context_instance = RequestContext(request))
view_2:
message = "This is an important message"
render_to_response("my_template.html",
{'foo':foo, 'bar':bar},
context_instance = RequestContext(request))
在模板中,我检查message 变量并包含如下块:
base_template.html:
....
{% block main_body %}
{% block messages %}
{% endblock %}
{% block content %}
{% endblock %}
{% endblock %}
....
my_template.html:
{% extends base_template.html %}
....
{% if message %}
{% block messages %}
<div class='imp_msg'>{{ message }} </div>
{% endblock %}
{% endif %}
...
问题是即使 view_2 没有传递消息,最终的 html 也会以<div class='imp_msg'></div> 呈现——基本上是一个空的 div。
由于 CSS 旨在为消息提供浅红色背景,因此我在页面顶部看到的是一个空的浅红色条。
我也尝试过:{% ifnotequal message None %}、{% ifnotequal message '' %},尝试将message 设置为None 或'',但似乎没有帮助。
不胜感激!
【问题讨论】: