在模板中使用时,我无法确定变量是否为空。
我遍历了整个集合,每一个我都在寻找一个变量narrative_text
。
我通过
测试了空变量{% ifnotequal narratives.narrative_text '' %}
我注意到控件进入此块,但
时没有打印/空白{{ narratives.narrative_text }}
遇到了。
那么,我如何精确检查变量是否为空?
我看了the docs,发现无效/空模板变量被''
替换。
医生说
模板系统会插入
TEMPLATE_STRING_IF_INVALID
设置的值。
我们是否必须明确将其输入settings.py
?我试过这样做,但我仍然无法使其发挥作用。
c=Context({
"narratives_list":all_narratives,
"patient_name":care_seeker_name
})
pymongo数据库调用返回 all_narratives
。
{% for narratives in narratives_list %}
<tr>
<td class = "date_col">
7 Aug, 2012
</td>
{% ifnotequal narratives.narrative_text '' %}
<td>
<div class = "narrative">
( text narrative )
<b>
{{ narratives.about }}
</b>
<br><br>
{{ narratives.narrative_text }}
</div>
</td>
{% else %}
<td>
<div class="scans">
<div class="gallery">
<b> {{ narratives.about }}</b>
<br><br>
<a href="https://udhc1-nodejstest.rhcloud.com/my_image/{{ narratives.file_id }}">
<img src="https://udhc1-nodejstest.rhcloud.com/my_image/{{ narratives.file_id }}" width="72" height="72" alt="" />
</a>
</div>
</div>
</td>
{% endifnotequal %}
答案 0 :(得分:29)
管道穿过长度并针对该值进行测试。
{% if narratives.narrative_text|length > 0 %}
{{ narratives.narrative_text }}
{% else %}
None
{% endif %}
答案 1 :(得分:4)
我认为只需使用{% if narratives.narrative_text %}
即可。它将使用Python的隐式false,它适用于空字符串,空数组,空字符串,None
,False
,0
等。
答案 2 :(得分:2)
您可以撰写Custom template filter,is_empty
进行检查。如果变量为空,则返回false
;如果值存在,则返回true
。
{% if narratives.narrative_text|is_empty %}
# dosomthing
{% else %}
# dosomthing
{% endif %}
答案 3 :(得分:1)
只需使用django 2.1.3,python 3.5和3.7通过我自己的代码确认以下各项有效:
{% if narratives.narrative_text %}
# do something
{{ narratives.narrative_text }}
{% else %}
# do something else
None # displays "None"
{% endif %}
答案 4 :(得分:0)
我认为最好,最明显的解决方案是使用Django模板语言:
{% if objects is not None %}
{% for obj in objects %}
{{obj}} // Do your stuff here
{% empty %}
No results. // No results case
{% endfor %}
{% endif %}
如果未设置变量objects
,则不会打印任何内容。
我也遇到类似的困难。 希望对您有所帮助。
答案 5 :(得分:-1)
我使用了jijnja这是很相似和更简单的,我认为如果你这样做会有用
{% if not narratives.narrative_text %}
// do something
{% else %}
// do something else with or without {{ narratives.narrative_text }}
{% endif %}
它使用python隐式True/False,None,
等来完成这项工作。
简单来说,在{{ }}
{% %}
内的python变量和条件等