2012-04-02 9 views
6

Sto utilizzando Django (e Python) per la prima volta e sto cercando la soluzione corretta per un modello incluso che potrebbe avere o meno un valore.Tag "condizionali" con "in Django

Ad esempio, questo modello avrà sempre definito una "società", ma potrebbe non essere sempre definito un "utente". Se l' 'utente' non è definito, allora si dovrebbe definire, in questo modo:

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

ma non ho trovato un buon modo per ottenere questo risultato. In alcuni casi, un utente verrà definito dal compratore del modello, in altri casi il modello dovrebbe trovare un utente 'predefinito'.

Edit: La soluzione, secondo la risposta di Ignacio, è questa:

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

risposta

8

Si desidera il filtro default.

+0

Questa variabile, 'ragazzo' dell'esempio, viene utilizzata in molti punti del modello. C'è un modo per usare il filtro predefinito per definirlo una volta? Mi piacerebbe evitare di dover dichiarare un valore predefinito per ogni utilizzo della variabile. –

+0

Non riesco a ricordare se i filtri funzionano con 'with'. Potrebbe essere necessario provare la vecchia sintassi. –

+0

Scusa - Sono molto nuovo sia per Python che per Django - qual è la vecchia sintassi? Non sto cercando un modo più efficiente per svolgere questo compito, solo un modo che funziona. :) –