Пользовательское сообщение, если нет ни одной записи для показа в django-шаблоне
Здравствуйте, я пытаюсь показать пользовательское сообщение типа "Не существует", если на самом деле нет ни одной записи для показа
и игнорировать наличие None
в шаблоне для пустых записей
Шаблон :
<div class="col-md-6 col-sm-12 col-xs-12 form-group pull-right ">
<label style="color : blue;" class="control-label col-md-5 col-sm-3 col-xs-12 pull-right size_Style"><i class="fa fa-circle" style="color : blue;" aria-hidden="true"></i> knowledge cost :</label>
<span class="col-md-12 col-sm-12 col-xs-12 form-group pull-right colorfull">
{{ special_knowledge.knowledgecost|safe }}
</span>
</div>
<div class="col-md-6 col-sm-12 col-xs-12 form-group pull-right ">
<label style="color : blue;" class="control-label col-md-5 col-sm-3 col-xs-12 pull-right size_Style"><i class="fa fa-circle" style="color : blue;" aria-hidden="true"></i> knowledge cost percemtage :</label>
<span class="col-md-12 col-sm-12 col-xs-12 form-group pull-right colorfull">
{{ special_knowledge.knowledgecost_percent }}
</span>
</div>
исходя из приведенного HTML первое поле будет None
, потому что у меня нет ни одной записи для него в моем db
.
так что есть ли более эффективный способ, чем использование if
для каждой записи?
я попробовал этот метод для всех, чтобы обработать любую пустую запись
{% if special_knowledge.knowledgecost %}
{{ special_knowledge.knowledgecost|safe }}
{% else %}
Doesnt exist
{% endif %}
Вы можете попробовать использовать тег шаблона Django default_if_none
для этого.
E.g.:
{{ special_knowledge.knowledgecost|default_if_none:"nothing" }}
Во-первых: вы также можете использовать (Читать подробнее)
{% if special_knowledge.knowledgecost %}
{{ special_knowledge.knowledgecost|safe }}
{% empty %}
Doesnt exist
{% endif %}
Но это почти то же самое :D
Вы можете использовать фильтр default
. (Читать подробнее)
{{ special_knowledge.knowledgecost|safe|default:"Doesnt exist" }}