Определить пустую переменную шаблона в Django
Я не могу определить, является ли переменная пустой при использовании в шаблоне.
Я перебрал всю коллекцию, и в каждом я ищу переменную narrative_text
.
Я проверил пустую переменную на
{% ifnotequal narratives.narrative_text '' %}
Я замечаю, что элемент управления входит в этот блок, но ничего не печатает / пусто, когда
{{ narratives.narrative_text }}
встречаются.
Итак, как мне точно проверить, пуста ли переменная?
я прочитала в 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 %}
4 ответов
Pipe по длине и выполните тест против этого значения.
{% if narratives.narrative_text|length > 0 %}
{{ narratives.narrative_text }}
{% else %}
None
{% endif %}
просто использовать {% if narratives.narrative_text %}
, Я думаю. Он будет использовать неявное false Python, которое применяется для пустых строк, пустых массивов, пустых диктов,None
, False
, 0
etc..
можно писать пользовательский шаблон фильтра, is_empty
чтобы проверить. Возвращение false
если переменная пуста, а true
если значение существует.
{% if narratives.narrative_text|is_empty %}
# dosomthing
{% else %}
# dosomthing
{% endif %}
я использовал jijnja что очень похоже и проще, и я думаю, что это сработает, если вы это сделаете
{% if not narratives.narrative_text %}
// do something
{% else %}
// do something else with or without {{ narratives.narrative_text }}
{% endif %}
он использует Python implicit True/False,None,
etc для выполнения работы.
Проще говоря, используйте переменные python внутри {{ }}
и conditionals, etc внутри {% %}