2011-09-18 15 views
18

Voglio essere in grado di fare un tag if in base al valore corrente dell'URL.Modello Django, se tag basato sul valore corrente dell'URL

ad esempio, se l'URL della pagina corrente è accounts/login/, quindi non mostrare un collegamento, senza passare una variabile dalla vista.

Non sono sicuro di come sia possibile scrivere un tag {% if %} per questo, è possibile?

+0

possibile duplicato: http://stackoverflow.com/questions/2882490/get-the-current-url-within-a-django-template – arie

risposta

19

Se si passa l'oggetto "richiesta" al modello, allora si è in grado di utilizzare questo:

{% if request.get_full_path == "/account/login/" %} 
+0

C'è un errore di battitura molto piccolo in questo che non riesco ad aggiornare con un modificare. Devi usare == not = per il confronto. –

36

si può anche fare questo per URL dinamici utilizzando:

{% url 'show_user_page' user=user as the_url %} 
{% if request.get_full_path == the_url %}something{% endif %} 

dove il vostro urls.py contiene qualcosa come:

(r'^myapp/user/(?P<user>\d+)/$', 'show_user_page'), 

Lo so perché ho appena trascorso età stesura di una StackOverflow domanda, quando ho trovato the answer nei documenti.

Direi che anche in casi semplici questo potrebbe essere l'approccio migliore, perché è più strettamente accoppiato.

+0

Woooow. il 'come là ha reso la mia giornata. Utilizzo dello stesso snippet su più pagine tramite il tag include e aveva bisogno di un modo per visualizzare collegamenti diversi a seconda della pagina attiva. Approccio senza prezzo! – Rexford

Problemi correlati