当前位置:  开发笔记 > 后端 > 正文

您是否有任何理由不能将模板过滤器与Django模板语法中的字符串进行比较?

如何解决《您是否有任何理由不能将模板过滤器与Django模板语法中的字符串进行比较?》经验,为你挑选了2个好方法。

我正在努力做到这一点,并且失败了.有没有理由说它不能用于Django模板语法?我正在使用最新版本的Django.

{% ifequal entry.created_at|timesince "0 minutes" %}

S.Lott.. 5

它不起作用,因为它不应该工作.您要求的不是模板语言的一部分.

你不能在标签的中间应用过滤器{% ifequal.当模板标签使用变量时,它不期望表达式,它只需要一个变量.

这种逻辑 - 提取时间,比较等等 - 是您在视图函数中应该做的事情.

然后,您的视图函数会在上下文中放置"zerominutes"项以供模板使用.模板只是做不了多少处理.

它们旨在实现呈现HTML所需的最低要求.其他一切都需要在您的视图功能中.



1> S.Lott..:

它不起作用,因为它不应该工作.您要求的不是模板语言的一部分.

你不能在标签的中间应用过滤器{% ifequal.当模板标签使用变量时,它不期望表达式,它只需要一个变量.

这种逻辑 - 提取时间,比较等等 - 是您在视图函数中应该做的事情.

然后,您的视图函数会在上下文中放置"zerominutes"项以供模板使用.模板只是做不了多少处理.

它们旨在实现呈现HTML所需的最低要求.其他一切都需要在您的视图功能中.



2> Alex Koshele..:

{% ifequal %}tag不支持过滤器表达式作为参数.它将整体entry.created_at|timesince视为变量的标识符.

Quik解决方法:使用{% with %}如下方法引入具有expresion结果的中间变量:

{% with entry.created_at|timesince as delta %}
    {% ifequal delta "0 minutes" %}
    ....
    {% endifequal %}
{% endwith %}

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有