Chcę wskazać inne pliki HTML na podstawie zmiennej. Używam to w następującym formacie:Używanie include do dynamicznego wskazywania na HTML
{% include 'templates/case/{{cid}}/intro.html' %}
to zgłasza błąd:
TemplateNotFound: templates/case/{{cid}}/intro.html
Patrząc na to wiem Jinja2 nie rozwiąże zmienną w czasie wykonywania. Wartość cid = ABC
(ABC nazwy folderu w ścieżce), więc spodziewałem całkowita droga będzie:
templates/case/ABC/intro.html
Jeśli używam tego rozdzielić ścieżkę bezpośrednio w to działa.
Jak mogę rozwiązać ten problem?
Thomas, dzięki za odpowiedź. Jeśli masz na myśli przekazanie kompletnej ścieżki w zmiennej: vid = 'templates/case/{{cid}}/intro.html', a następnie użyj jej w includeide .... {% include '{{vid}}' %}. Próbowałem to ... to daje ten sam błąd ... TemplateNotFound. – Utpal
@Utpal Czy próbowałeś usunąć "{{}}" i po prostu użyć {% include vid%}? Mogę jednak odejść, od jakiegoś czasu nie używałem Jinji, ale spodziewałbym się, że będzie działało podobnie do django w tym względzie. Możesz sprawdzić to podobne pytanie: http://stackoverflow.com/questions/6101864/dynamic-use-of-templates-in-jinja2 –
Dzięki za tonę Thomas. Usunięcie "{{}}" działa idealnie. Jednak sprawdziłbym "ataki na przemierzanie ścieżek", o których mnie ostrzegałeś. – Utpal