【发布时间】:2012-09-12 12:05:41
【问题描述】:
我无法确定在模板中使用的变量是否为空。
我已经遍历了整个集合,并且在每个集合中我都在寻找一个变量 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
})
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 %}
【问题讨论】:
-
如果发生错误,Django 也不会显示任何内容,例如如果名称不存在。
-
谢谢@HansThen,那么当使用 ifnotequals 和 '' 进行比较时,它应该返回一个 'false' ?
-
我认为它会跳过整个区块。基本上错误意味着忘记这个声明。也在 if 中。
-
解决方法应该是什么?
-
要调试,请检查
narratives_list是否为空。如果不是,请检查是否打印了else块。如果不是,你知道你有一个错误。否则,您可以使用 logging.debug() 语句签入代码(而不是模板)以查看这些变量中的内容。
标签: python django mongodb django-templates pymongo