2013-10-28 8 views
32

Dies ist mein Code in einer Vorlage.So sehen Sie, ob eine Zeichenfolge eine andere Zeichenfolge in Django enthält Vorlage

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

Jetzt derzeit meine url Wert ist "http://127.0.0.1:8000/login?next=/index.html"

Obwohl "index.html" gibt es in der Zeichenfolge noch druckt bye.

Wenn ich den gleichen Code in einer Python-Shell ausführen, funktioniert es. Nicht sicher, was der Fehler ist.

+1

schreiben ein eigenes Template-Tags, die Sie – Anto

+0

helfen kann sein, kann diese Schnipsel https://djangosnippets.org/snippets/1350/ Sie – alko

Antwort

63

Versuchen Sie, die zusätzlichen {{...}} Tags und die "..." Zitate um request.build_absolute_uri zu entfernen, es funktionierte für mich.

Da Sie sich bereits innerhalb eines {% if %} Tags befinden, müssen Sie request.build_absolute_uri nicht mit {{...}} Tags umgeben.

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

Aufgrund der Zitate man buchstäblich suchen die Zeichenfolge "{{ request.build_absolute_uri }}" und nicht die ausgewertete Django markieren Sie bestimmt.

+2

perfekt @farmerjoe 'helfen {% if 'index.html' in request.build_absolute_uri% } 'das funktioniert für mich. Ich soll benutzerdefinierte Template-Tags schreiben. Aber das hat für mich funktioniert. – curiousguy

+0

@DibyenduDutta Ich bin froh, dass ich helfen konnte! –

Verwandte Themen