У меня есть шаблон 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
в None
или ''
явно, но, похоже, не помогает.
Поблагодарили бы за помощь!