多くのビューで使用される 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 %}
、を toまたは明示的に{% ifnotequal message '' %}
設定しようとしましたが、役に立たないようです。message
None
''
助けていただければ幸いです。