2017-11-11 113 views
1

在我的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)明顯的條款?

回答

0

爲了絕對安全,我會分裂它是這樣的:

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

     ... 

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

是的,我做到這一點。但它太複雜,並不明顯,我認爲 –

+0

我認爲是更清晰但ymmv,也不會需要更多的處理時間。 –

+0

嵌套'如果'是偉大的。但是,如果django開發人員執行復雜的條件,那麼看到它做得很好就會很酷 –