Python Django模板,用于识别下拉选择

Python Django模板,用于识别下拉选择,python,django,Python,Django,每个项目都有一个下拉列表,用于选择并保存选项。在重新加载页面时,我希望用户能够看到他们所做的选择 型号: CATEGORY_CHOICES = ( ('0', 'All Position'), ('1', 'Green'), ('2', 'Aqua'), ('3', 'Blue'), ('4', 'Yellow'), ) class ColorCoat(models.Model): title = models.CharField(max_len

每个项目都有一个下拉列表,用于选择并保存选项。在重新加载页面时,我希望用户能够看到他们所做的选择

型号:

CATEGORY_CHOICES = (
    ('0', 'All Position'),
    ('1', 'Green'),
    ('2', 'Aqua'),
    ('3', 'Blue'),
    ('4', 'Yellow'),
)

class ColorCoat(models.Model):
    title = models.CharField(max_length=100)
    category = models.CharField(max_length=1, choices=CATEGORY_CHOICES)

    def get_category(self):
        return CATEGORY_CHOICES[int(self.category)][1]
我尝试的是:

{% for item in color_items %}
...
    {% if item.category == 1 or 3 %}
        <span>Greenish Blue</span>
    {% endif %}
    {% if item.category == 2 or 4 %}
         <span>Turquoise</span>
    {% endif %}
{% endfor %}
{%for color\u items%}
...
{%if item.category==1或3%}
蓝绿色
{%endif%}
{%if item.category==2或4%}
绿松石
{%endif%}
{%endfor%}

如何正确检查item.category值是多少?

您的逻辑有缺陷,请使用:

{% if item.category == '1' or item.category == '3' %}
以及:

表达式
item.category==2或4
并不表示您认为它的作用;它被解释为
(item.category==2)或4
。如果
item.category
确实是
2
,则该表达式的计算结果为
(True)或4
,但如果
item.category
3
,则返回
4
,在布尔上下文中被视为
True


此外,您在
item.category
中有字符串,但您测试的是
int
值。

这会抛出一个
TemplateSyntaxError,无法解析其余的:'(1,'from'(1),
对我来说。@Modelesq:ah,刚刚找到了正确的、更新的。我对我的原始帖子进行了编辑。如果你能看一下,那将是令人惊讶的。你的答案似乎是正确的,但没有返回任何内容。@Modelesq:next问题:你使用整数,但使用定义字符串。
{% if item.category == '2' or item.category == '4' %}