gpt4 book ai didi

django - 如何检查是否定义了 django 模板变量?

转载 作者:行者123 更新时间:2023-11-28 19:35:16 25 4
gpt4 key购买 nike

我有一个 django 模板,可用于许多 View 。该模板有一个消息 block ,用于通知用户应该引起他们注意的任何事情。是否发送消息取决于 View 。有些观点可能会发送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变量并包含如下 block :

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 '' %} , 尝试设置 messageNone''明确,但似乎没有帮助。

非常感谢您的帮助!

最佳答案

您需要切换您的{% block %} 和您的{% if %}

{% block messages %}
{% if message %}<div class='imp_message'>{{ message }}</div>{% endif %}
{% endblock %}

关于django - 如何检查是否定义了 django 模板变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12924865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com