[英]Determine empty template variable in Django
在模板中使用时,我无法确定变量是否为空。 我已经遍历整个集合,每一个我都在寻找变量narrative_text
。
我测试了空变量
{% ifnotequal narratives.narrative_text '' %}
我注意到控件进入此块,但是当打印时没有打印/空白
{{ narratives.narrative_text }}
遇到了。
那么,如何精确检查变量是否为空?
我阅读了文档 ,发现无效/空模板变量被''
替换。
医生说
模板系统插入
TEMPLATE_STRING_IF_INVALID
设置的值。
我们是否必须明确将其输入settings.py
? 我试过这样做,但我仍然没能使它工作。
c=Context({
"narratives_list":all_narratives,
"patient_name":care_seeker_name
})
all_narratives
由pymongo数据库调用返回。
{% 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 %}
通过长度管道并根据该值进行测试。
{% if narratives.narrative_text|length > 0 %}
{{ narratives.narrative_text }}
{% else %}
None
{% endif %}
我想,只需使用{% if narratives.narrative_text %}
。 它将使用Python的隐式false,它适用于空字符串,空数组,空字符串, None
, False
, 0
等。
您可以编写自定义模板过滤器 , is_empty
进行检查。 返回false
,如果变量是空的, true
,如果值存在。
{% if narratives.narrative_text|is_empty %}
# dosomthing
{% else %}
# dosomthing
{% endif %}
刚刚通过我自己的代码使用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 %}
我认为最好和最明显的解决方案是,在Django模板语言中:
{% if objects is not None %}
{% for obj in objects %}
{{obj}} // Do your stuff here
{% empty %}
No results. // No results case
{% endfor %}
{% endif %}
如果未设置变量objects
则不会打印任何内容。
我有类似的困难。 希望能帮助到你。
我已经使用了jijnja ,这是很相似和更简单的,我认为如果你这样做会有用
{% if not narratives.narrative_text %}
// do something
{% else %}
// do something else with or without {{ narratives.narrative_text }}
{% endif %}
它使用python隐式True/False,None,
等来完成这项工作。 简单来说,在{{ }}
内使用python变量,在{% %}
{{ }}
内使用条件等
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.