在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模板语言实现我的目标?当然,一个简单的解决方案是编写一个过滤器,但是我想知道模板语言中可能的解决方案。
答案 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'
,然后仅将表达式替换为变量)。