Python Django模板仅在for循环中匹配的第一次出现时执行
我有一个带外键的视频表,外键指向一个文档(一个文档有多个视频)。我想检查该列表中的每个元素,在第一次与查询匹配时,启用一个元素(指向其他位置的按钮)。我尝试使用for循环和if语句,以便:Python Django模板仅在for循环中匹配的第一次出现时执行,python,django,for-loop,django-templates,Python,Django,For Loop,Django Templates,我有一个带外键的视频表,外键指向一个文档(一个文档有多个视频)。我想检查该列表中的每个元素,在第一次与查询匹配时,启用一个元素(指向其他位置的按钮)。我尝试使用for循环和if语句,以便: {% for vid in doc.video_set.all %} {% if vid.query_data == 'match_term' %} <-- button/link stuff --> {% initialize variable %} {%
{% for vid in doc.video_set.all %}
{% if vid.query_data == 'match_term' %}
<-- button/link stuff -->
{% initialize variable %}
{% endif %}
{% endfor %}
{%用于doc.video\u set.all%中的视频
{%if vid.query_data='match_term%}
{%初始化变量%}
{%endif%}
{%endfor%}
其想法是,如果我初始化了一个变量,我可以将if“and variable is None”添加到if语句中,并防止将来显示。然而,在尝试使用“set”和“with”初始化变量之后,我只收到了一些错误消息,这些消息似乎表明这些方法不存在。如何有效地实现此功能。Django模板语言不允许您这样设置变量。您的问题有点让人困惑,因为您试图展示如何在Django模板中实现它,而不是展示希望模板显示的内容。以下是一些建议: 如果
match\u term
为常量,则可以向模型中添加方法
class Doc(models.Model):
def first_match(self):
return self.video_set.filter(query_data='match_term').first()
然后在模板中使用{{doc.first_match}}
如果
match\u term
发生了变化,那么您可能需要在页面上编写一个。match\u term确实发生了变化,因此我想我将查看自定义标记