我是Django的新手,我试图在模板中搜索某些内容,如果我发现它想要打印某些东西,如果不是我想要打印别的东西。 ......这样:
{% for art in artifacts %}
{% if art.product_component == 'A' %}
<p> something.</p>
{{ found = True }}
{% endif %}
{% endfor %}
{% if not found %}
<p>NA</p>
{% endif %}
我知道这不是正确的做法,但这只是为了理解这个想法。
我该怎么做?
答案 0 :(得分:2)
您可以编写模板标签以查找product_component == 'A'
是否存在。
<强> your_app_dir / templatetags / product_tag.py 强>
from django import template
from django.template import Library
register = Library()
@register.assignment_tag()
def check_product_component_status(artifacts):
value = [art for art in artifacts if art.product_component == 'A']
if value:
return True
return False
模板:
{% for art in artifacts %}
{% if art.product_component == 'A' %}
<p> something.</p>
{% endif %}
{% endfor %}
{% load product_tag %}
{% check_product_component_status artifacts as status %}
{% if not status %}
<p> something.</p>
{% endif %}