Django模板中的括号(例如)优先顺序

时间:2019-01-15 18:44:05

标签: django django-templates django-template-filters

在Django模板中使用了多个 | ,我想知道是否可以以某种方式强制执行优先顺序(例如算术中的括号)?

我有一个非常复杂的数据结构,其中我希望使用8位数字的日期,但是存储的月和日没有前导零:

{% url 'diary' year.0|add_str:month.0|add_str:forloop.counter %}

仅会 201847 而不是 20180407 。正确的方法是:

year.0|add_str:(month.0|stringformat:'02d')|add_str:(forloop.counter|stringformat:'02d')

,但是当然括号在这里不起作用。

如何使用Django模板语言实现我的目标?当然,一个简单的解决方案是编写一个过滤器,但是我想知道模板语言中可能的解决方案。

1 个答案:

答案 0 :(得分:0)

您始终可以使用变量来存储较大表达式的部分(例如,您可以存储;with src as ( select t.Parent, t.ParentRev, t.Child, t.ChildRev, t.VDate, t.ECO, Item = i.Item, ItemRev = i.Rev, ItemRDate = i.RDate, ItemECO = i.ECO, ItemNew = i.NEW, RID = row_number() over (partition by t.Parent, t.ParentRev, t.Child order by i.RDate desc) from #Tree t inner join #Items i on t.Child = i.Item and i.RDate <= t.VDate ) update src set ECO = ItemECO, ChildREv = ItemRev where RID = 1 month.0|stringformat:'02d',然后仅将表达式替换为变量)。