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