【问题标题】:If else not working (comparison operator in Django)如果其他不工作(Django中的比较运算符)
【发布时间】:2017-09-06 23:57:22
【问题描述】:

我正在使用 Django 1.11,我正在尝试使用 Django 模板在 html 文件中执行 if .. else .. 语句。

常规的if .. else .. 语句在 Django 模板中工作,我遇到的唯一问题是使用比较运算符 (<=, <, >, >=)。

我已经重新阅读了 Django 1.11 的文档,并且这个版本似乎确实支持它。

代码(视图/数据库):

a = 25.2 # passed from view to database

HTML 模板

{% if data.a < 30 %}
    <p>correct</p>
{% else %}
    <p>incorrect</p>
{% endif %}

data.a 本身可以正常工作,如果我只使用{{ data.a }},那么它会正确显示25.2,但是如果我运行上述代码,则始终显示else 语句。

有什么建议吗?

【问题讨论】:

  • 使用 > 告诉你发生了什么
  • 同样的事情发生了。所有的运算符我都试过了
  • 确保 data.a 是 int 类型而不是字符串
  • 我只是在数据添加到数据库之前尝试在数据周围添加int(),但它不起作用(添加到数据库时它可能会更改为字符串吗?)
  • 必须是浮点数,有小数

标签: python html django django-templates


【解决方案1】:

如果您真的想在模板中执行这些操作,只需将变量转换为字符串即可:

{% if "29.3" < "29.2" %}
   <p>correct</p>
{% else %}
   <p>incorrect</p>
{% endif %}

不正确

{% if "29.1" < "29.2" %}
   <p>correct</p>
{% else %}
   <p>incorrect</p>
{% endif %}

正确

您可以使用stringformat 过滤器将所有内容放在一起。祝你好运,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2021-11-07
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多