我有一个从许多视图中使用的 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 旨在为消息提供 light_red 背景,因此我看到的是页面顶部的空 light_red 条。
我也试过: {% ifnotequal message None %}
, {% ifnotequal message '' %}
, 尝试设置message
toNone
或''
明确,但似乎没有帮助。
将不胜感激一些帮助!