Django 模板变量值与字符串文字比较失败

标签 django django-templates

我的模板中有以下代码应该比较 watchinstance.shift 的值,可以是“DAY”或“NIGHT”,转换为文字字符串“DAY”。比较总是失败。

{% for watchinstance in watchinstance_list %}
    {% if watchinstance.shift == "DAY" %}
        <p>shift is DAY</p>
    {% endif %}
{% endfor %}

使用 ifequal也不起作用:
{% for watchinstance in watchinstance_list %}
    {% ifequal watchinstance.shift "DAY" %}
        <p>shift is DAY</p>
    {% endifequal %}
{% endfor %}

但是,只需调用 {{ watchinstance.shift }}按预期工作:
{% for watchinstance in watchinstance_list %}
    {{ watchinstance.shift }}
{% endfor %}

返回 DAYs 和 NIGHTs。

我检查了是否 watchinstance.shift返回任何额外的字符,它看起来不像......我还能在这里错过什么?

最佳答案

所以搜索后Django docs 2个小时,我终于找到了一种让它工作的方法:

{% if watchinstance.shift|stringformat:"s" == "DAY"  %}

关于Django 模板变量值与字符串文字比较失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3732106/

相关文章:

django - 自定义重组订单

python - POST请求中的django ModelForms和正常形式

Django:objects.raw() 无法获取结果,尽管 SQL 直接在 MySQL 中工作

python - TruncDate 时区参数在 Django 中不起作用

django - 从另一个应用程序加载自定义模板标签?

表单中的 django 表单集/表单中的动态数组

django项目根目录 self 发现

python - Bitnami Django 堆栈和模块 "requests": cannot import name 'certs'

python - Django - 获取错误 "Reverse for ' 详细信息',没有找到任何参数。尝试了 1 种模式 :"when using {% url "音乐 :fav"%}

python - Django:从 getter 方法返回的 models.CharField() 值为空