1 python django django-templates
所以,我有一个十进制字段,可以是3个不同的值.在我看来,我传入一个包含适当的十进制值作为键的值字典.
{% for item in booklist %}
{% for key, value in numvec.items %}
{{item.number}}
{% ifequals item.number {{key}} %}
{{value}}
{% endifequals %}
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这是我作为numvec传入的字典:
numvec = {"TEST":Decimal("0.999"), "TEST2":Decimal("0.500"),
Run Code Online (Sandbox Code Playgroud)
"TEST3":十进制( "0.255")}
数字字段被定义为在我的模型中有这些选择:
BOOK_CHOICES=((Decimal("0.999"), 'TEST'),(Decimal("0.500"), 'TEST2'),(Decimal("0.255"), 'TEST3'),)
Run Code Online (Sandbox Code Playgroud)
如果我将dict与属性进行比较,则项目编号在视图中打印得很好,但由于某种原因,ifequals无法正确地比较两个小数.这是一个错误,还是我在使用ifequals的模板中做错了什么?
Ole*_*rov 11
它不是一个错误,它可以实现你想要做的事情.
但是,首先关于您的代码的几点评论:
{% ifequal item.number {{key}} %}如果在"ifequal"或"if"运算符中留下双花括号,则代码将导致TemplateSyntaxError异常.现在的解决方案:
这是一个例子:
{% for item in decimals %}
{% if item|stringformat:"s" == variable %}
{{ variable }}
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)