form.tickets.value具有值['29', '4', '7']
ticket_id的值例如5、3、7等。
现在,如果列表中存在7,我想打印YES。但是它总是说“不”。谁能告诉我为什么?
{% if ticket_id in form.tickets.value %}
YES
{% else %}
{{ ticket_id }} not in {{ form.tickets.value }}
{% endif %}
答案 0 :(得分:1)
在Python中,变量的类型很重要。您正在将整数与字符串列表进行比较。由于类型不同,因此值从不相等(即使它们“看起来”相同)。
您可以将列表转换为整数列表而不是字符串,或者将要比较的整数转换为字符串。这是使用Django内置模板过滤器之一的后者的示例:
{% if ticket_id|stringformat:"s" in form.tickets.value %}