2013-10-28 12 views
32

Questo è il mio codice in un modello.Come verificare se una stringa contiene un'altra stringa nel modello Django

{% if 'index.html' in "{{ request.build_absolute_uri }}" %} 
    'hello' 
{% else %}  
    'bye' 
{% endif %} 

Ora il mio valore url attualmente è "http://127.0.0.1:8000/login?next=/index.html"

Anche se "index.html" c'è nella stringa di esso stampa ancora bye.

Quando eseguo lo stesso codice in una shell python funziona. Non sono sicuro di quale sia l'errore.

+1

scrivere un modello personalizzato tag che vi aiuterà a – Anto

+0

può essere questo frammento https://djangosnippets.org/snippets/1350/ può aiutare – alko

risposta

63

Provare a rimuovere i tag extra {{...}} e le quotazioni "..." intorno a request.build_absolute_uri, ha funzionato per me.

Poiché si è già all'interno di un tag {% if %}, non è necessario circondare lo request.build_absolute_uri con i tag {{...}}.

{% if 'index.html' in request.build_absolute_uri %} 
    hello 
{% else %} 
    bye 
{% endif %} 

A causa delle citazioni si sono letteralmente cercando la stringa "{{ request.build_absolute_uri }}" e non il Django valutata tag desiderato.

+2

perfetto @farmerjoe '{% se 'index.html' in request.build_absolute_uri% } 'questo funziona per me. Dovrei scrivere tag modello personalizzati. Ma quello ha funzionato per me. – curiousguy

+0

@DibyenduDutta Contento di aver potuto aiutare! –

Problemi correlati