0
我有一些选择框表单域,我需要在模板中输出自定义标记作为列表。为此,我创建了一个包含它作为参数传递当前表单域的内容。Django比较表单字段值与选定的值
我可以遍历选项列表来创建我想要的列表而不会有任何问题。我的问题是,我需要显示表单标签或当前选定值的选项列表上方。这是我必须做这样的代码:
{% if field.value %}
{% for value, option in field.field.choices %}
{% if value == field.value %}
{{ option }}
{% endif %}
{% endfor %}
{% else %}
{{ field.label }}
{% endif %}
举例来说,如果value
在上面的代码为1,field.value
也为1,平等的测试不工作,该位if语句中的代码没有得到执行。我猜它可能是下到两个值,我比较的数据类型,所以我试图铸造两个整数如下:
{% if field.value %}
{% for value, option in field.field.choices %}
{% if value|add:"0" == field.value|add:"0" %}
{{ option }}
{% endif %}
{% endfor %}
{% else %}
{{ field.label }}
{% endif %}
这工作得很好的情况下选择框中的值是整数。但是,有时候我的选择框会有布尔值作为值,所以在这种情况下,比较将不适用于应用的整型转换。
如何安全地比较两个值,无论正在比较哪种类型的数据?