Django模板:{%,如果['4','3','5']%}中的5不起作用

时间:2018-11-09 13:26:24

标签: python django

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 %}

Example

1 个答案:

答案 0 :(得分:1)

在Python中,变量的类型很重要。您正在将整数与字符串列表进行比较。由于类型不同,因此值从不相等(即使它们“看起来”相同)。

您可以将列表转换为整数列表而不是字符串,或者将要比较的整数转换为字符串。这是使用Django内置模板过滤器之一的后者的示例:

{% if ticket_id|stringformat:"s" in form.tickets.value %}