2012-04-02 16 views
6

Po raz pierwszy używam Django (i Pythona) i szukam poprawnego rozwiązania dołączonego szablonu, który może, ale nie musi, zawierać wartość.Warunkowa "z" tagiem w Django

Na przykład ten szablon będzie zawsze miał zdefiniowaną "firmę", ale nie zawsze ma zdefiniowany "użytkownik". Jeśli "użytkownik" nie jest zdefiniowany, należy go zdefiniować, tak jak:

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

Ale nie znalazłem dobrego sposobu, aby to osiągnąć. W niektórych przypadkach użytkownik zostanie zdefiniowany przez element szablonu, w innych przypadkach szablon powinien znaleźć "domyślnego" użytkownika.

Edit: Rozwiązanie, zgodnie z odpowiedzią Ignacio, znajduje się poniżej:

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

Odpowiedz

8

Chcesz filtr default.

+0

Ta zmienna "facet" z przykładu jest używana w wielu miejscach szablonu. Czy istnieje sposób użycia filtra domyślnego do zdefiniowania go raz? Chciałbym uniknąć deklarowania wartości domyślnej dla każdego użycia zmiennej. –

+0

Nie pamiętam, czy filtry działają z 'with'. Być może będziesz musiał wypróbować starą składnię. –

+0

Przepraszam - jestem bardzo nowy w Pythonie i Django - jaka jest stara składnia? Nie szukam skuteczniejszego sposobu wykonania tego zadania, tylko działa to w sposób, który działa. :) –