Ich möchte auf eine andere HTML-Dateien basierend auf einer Variablen zeigen. Ich verwende in folgendem Format enthalten:Mit Include dynamisch auf HTML zeigen
{% include 'templates/case/{{cid}}/intro.html' %}
Dies wirft einen Fehler:
TemplateNotFound: templates/case/{{cid}}/intro.html
bei dieser Suche Ich weiß Jinja2 nicht die Variable zur Laufzeit aufzulösen. Der Wert von cid = ABC
(ABC ist ein Name des Ordners in dem Pfad), so erwartete ich die Gesamt Weg zu sein:
templates/case/ABC/intro.html
Wenn ich diesen aufgelösten Pfad direkt verwenden in sind es funktioniert.
Wie kann ich das beheben?
Thomas, danke für die Antwort. Wenn Sie meinen, dass ich den vollständigen Pfad in einer Variablen übergebe: vid = 'templates/case/{{cid}}/intro.html' und dann benutze es im inclide .... {% include '{{vid}}' %}. Ich habe das versucht ... das gibt den gleichen Fehler ... TemplateNotFound. – Utpal
@Utpal Haben Sie versucht, "{{}}" zu entfernen und einfach {% include vid%} zu verwenden? Ich könnte allerdings auf der Stelle sein, habe Jinja schon lange nicht mehr benutzt, aber ich würde erwarten, dass es in dieser Hinsicht ähnlich wie Django funktioniert. Vielleicht möchten Sie diese ähnliche Frage auschecken: http://stackoverflow.com/questions/6101864/dynamic-use-of-templates-in-jinja2 –
Vielen Dank Thomas. Das Entfernen von '{{}}' funktioniert einwandfrei. Allerdings würde ich die "Traversal-Tracker-Angriffe" überprüfen, vor denen Sie mich gewarnt haben. – Utpal