每个项目都有一个下拉列表,可以选择并保存它。重新加载页面后,我希望用户能够看到他们做出的选择。
模特:
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值是什么?
答案 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.category
为3
,则成为(False) or 4
,则返回4
在布尔上下文中被认为是True
。
此外,您在item.category
中有字符串,但您正在测试int
值。