Django模板识别下拉选项

时间:2013-04-15 18:47:25

标签: python django

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

模特:

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

如何正确检查item.category值是什么?

1 个答案:

答案 0 :(得分:1)

你的逻辑是有缺陷的,使用:

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

{% if item.category == '2' or item.category == '4' %}

表达式item.category == 2 or 4并不代表你的想法;它被解释为(item.category == 2) or 4。如果item.category确实是2,那么该表达式的评估结果为(True) or 4,但如果item.category3,则成为(False) or 4,则返回4在布尔上下文中被认为是True

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