我有这个代码情况
{%if 1 | floatformat in'7,10'%} 是 {%else%} 没有 {%endif%}
返回结果始终设置为“yes”,如何使结果返回“no” 请帮忙。 感谢
答案 0 :(得分:1)
很难从你的例子中得出究竟发生了什么,因为你正在用虚拟数据代替真正来自数据库的内容。
正如您所写,结果将始终为“是”,因为字符串'7,10'包含字符串'1'。
听起来就像你想要实现的那样:
如果此号码在此列表中,则为是,否则为否。
所以让我们重写一下这个模板更加真实:
{% if mynumber in yeslist %} yes {% else %} no {% endif %}
这假定:
在这种情况下,我不确定你使用的是floatformat。
如果上述断言不正确,并且你必须使用字符串,那么你的工作要困难得多,你应该在服务器端处理yeslist。例如,如果yeslist只是一个像“7,10,123,93,9,19,83”这样的字符串,那么在模板中确定数字8
是否在列表中将是不必要的困难。在你看来更容易做到:
def myview(request):
ctx = {}
# ... do some work ...
# yeslist now has a string like "7,10,123,93,9,19,83"
ctx['yeslist'] = yeslist.split(',')
# ... do more work, and render the response ...
现在,{% if '8' in yeslist %}
将不再返回误报,因为它没有进行子字符串匹配,它正在进行列表成员资格。
答案 1 :(得分:0)
1|floatformat
返回1
,条件检查1
是否在'7,10'
,因为django将'7,10'
视为字符串,返回True。尝试传递一个列表,它将不返回