Django的模板,如果同一个标签内的逻辑breckets和优先顺序

问题描述:

在我的Django模板我有Django的模板,如果同一个标签内的逻辑breckets和优先顺序

{% if object_not_readonly and user_is_worker or user_is_admin %} 

Django的doc告诉我

使用两个AND和OR子句条件允许,并且具有更高的优先级或者是

我觉得这在IF语句中声明逻辑优先级的方式并不明显。

问题是

是它像在Django模板语言{% if object_not_readonly and (user_is_worker or user_is_admin) %}条件,与像if A and (C or B) and (not Z)明显的条款?

为了绝对安全,我会分裂它是这样的:

{% if object_not_readonly %} 
    {% if user_is_worker or user_is_admin %} 

     ... 

    {% endif %} 
{% endif %} 
+0

是的,我做到这一点。但它太复杂,并不明显,我认为 –

+0

我认为是更清晰但ymmv,也不会需要更多的处理时间。 –

+0

嵌套'如果'是伟大的。但是,如果django开发人员执行复杂的条件,那么看到它做得很好就会很酷 –