2012-04-02 22 views
6

我第一次使用Django(和Python),並且正在尋找可能包含或可能未包含值的包含模板的正確解決方案。Django中有條件的'with'標籤

例如,此模板將始終定義一個「公司」,但它可能並不總是有「用戶」定義。如果「用戶」沒有定義,那麼一個應該被定義,像這樣:

<% with guy=(user if user != None else company.admin_user) %> 

但我還沒有找到實現這一目標的好方法。在某些情況下,用戶將由模板的包含者定義,而在其他情況下,模板應該找到「默認」用戶。

編輯:解決辦法,按伊格納西奧的答案,是這樣的:

<% with guy=user|default:company.admin_user %> 

回答

8

您希望default過濾器。

+0

該示例中的變量'guy'在模板中的很多地方都有使用。有沒有辦法使用默認過濾器來定義一次?我想避免必須爲變量的每次使用聲明默認值。 – 2012-04-02 02:54:13

+0

我不記得過濾器是否用'with'工作。您可能需要嘗試舊的語法。 – 2012-04-02 02:56:12

+0

對不起 - 我對Python和Django都很陌生 - 舊的語法是什麼?我不是在尋找一種更有效的方式來完成這項任務,只是一種有效的方式。 :) – 2012-04-02 02:57:56