我有一个带有外键的视频表,指向一个文档(多个视频到一个文档)。我想检查该列表的每个元素,并在第一次与查询匹配时,启用一个元素(在其他地方引导的按钮)。我的尝试是使用for循环,然后使用if语句:
{% for vid in doc.video_set.all %}
{% if vid.query_data == 'match_term' %}
<-- button/link stuff -->
{% initialize variable %}
{% endif %}
{% endfor %}
我的想法是,如果我初始化了一个我可以添加的变量,如果&#34;并且变量是None&#34;到if语句并防止将来显示。但是,在尝试使用&#34; set&#34;和#34;与&#34;初始化变量我收到的只是错误消息,似乎表明这些方法不存在。我将如何有效地实现此功能。
答案 0 :(得分:1)
Django模板语言不允许你设置这样的变量。您的问题有点令人困惑,因为您试图展示如何在Django模板中实现它,而不是显示您希望模板显示的内容。以下是一些建议:
如果match_term
不变,您可以为模型添加方法。
class Doc(models.Model):
def first_match(self):
return self.video_set.filter(query_data='match_term').first()
然后在模板中使用{{ doc.first_match }}
。
如果match_term
发生变化,那么您可能需要撰写custom template tag。