Powiedz, że używam return render_template('index.html', users=users)
. Czy możliwe jest pobranie nazwy pliku wewnątrz szablonu bez wyraźnego wysłania go wewnątrz widoku?Jak uzyskać nazwę bieżącego szablonu wewnątrz szablonu Jinja2?
Odpowiedz
Jeśli wszystko, czego potrzebujesz, to nazwa bazowa, możesz użyć {{ self }}
, która zwróci ciąg repr zawierający nazwę podstawową szablonu, np. <TemplateReference 'view.html'>
. Można analizować ten z filtrem, np {{ self | quoted }}
@app.template_filter('quoted')
def quoted(s):
l = re.findall('\'([^\']*)\'', str(s))
if l:
return l[0]
return None
Jeśli potrzebujesz pełnej ścieżki, na przykład, „/full/path/to/view.html” ty chcieć podklasy Template.
To nie działa. Gdy próbuję Twojego rozwiązania, ten błąd jest zgłaszany: TemplateAssertionError: brak filtru o nazwie "quoted" – renatov
@renatov: Gdzie masz @ app.template_filter ('quoted')? Czy filtr jest poprawnie zarejestrowany w aplikacji Flask? – PartialOrder
Chociaż nieudokumentowane, {{ self._TemplateReference__context.name }}
poda nazwę szablonu. Istnieje również wiele interesujących atrybutów, które można wykorzystać po self._TemplateReference__context
.
Można na przykład dodać do swojej najwyższej szablonu bazowego:
<meta name="template" content="{{ self._TemplateReference__context.name }}">
Więc patrząc na źródło strona pomoże Ci szybko znaleźć odpowiedni plik szablonu. Jeśli nie chcesz ujawniać tego typu informacji, uzależnij je od środowiska testowego.
- 1. Jak uzyskać nazwę bieżącego widoku z szablonu układu w Railsach?
- 2. Jak uzyskać bieżącego użytkownika w tagu szablonu?
- 3. NamedTuples w makrach szablonu Jinja2
- 4. Uzyskaj wiążącą nazwę kolumny szablonu texbox szablonu
- 5. Osadzanie szablonu ejs wewnątrz szablonu erb
- 6. Jak tłumaczyć nazwę szablonu WordPress?
- 7. Nagłówki utworzone wewnątrz szablonu
- 8. Jak zdefiniować funkcję szablonu wewnątrz szablonu klasy w pliku * .inl
- 9. zmienna jquery wewnątrz szablonu gałązka
- 10. Użyj klasy wewnątrz szablonu T4.
- 11. wywoływania funkcji wewnątrz Vue.js szablonu
- 12. Wykonywanie javascript wewnątrz szablonu Handlebars
- 13. Funkcja javascript wewnątrz szablonu jquery
- 14. Jak uzyskać bieżący rok z szablonu freemarker'a
- 15. Jak utworzyć listę wewnątrz szablonu Freemarker
- 16. Jak pocieszyć zalogować wewnątrz szablonu pucharowej
- 17. AngularJS: Jak ustawić zmienną wewnątrz szablonu?
- 18. Jak zdobyć obiekt z PK wewnątrz szablonu Django?
- 19. uzyskać oryginalną nazwę struct/klasy C++ szablonu podczas konkretyzacji
- 20. komponenty angularjs otrzymujące formularz wewnątrz szablonu
- 21. W MVC3, jak uzyskać nazwę bieżącego kontrolera?
- 22. W Boost.Test, jak uzyskać nazwę bieżącego testu?
- 23. Wysublimowany tekst: Jak uzyskać nazwę bieżącego widoku
- 24. Jak uzyskać nazwę bieżącego katalogu w Ruby?
- 25. sposób na unieważnienie zmiennych szablonu przekazanych do szablonu jinja2 z programu obsługi żądań webapp2
- 26. Funkcja przyjaciela szablonu szablonu klasy
- 27. Uzyskiwanie dwukierunkowego wiązania danych $ wewnątrz szablonu
- 28. Klasa szablonu z kontenerem szablonu
- 29. Uzyskiwanie identyfikatora węzła wewnątrz szablonu bloku za pomocą Drupala 7
- 30. Czy mogę wpisać parametr szablonu szablonu?
tylko zastanawiasz się: co próbujesz zrobić? (zainteresowany odpowiedzią) –
I sekunda @JeffTratner. Co chcesz robić? – Apalala
Chcę dodać klasę do treści w zależności od nazwy pliku. Na przykład, jeśli jest to szablon "user-details.html", chcę dodać odpowiednią klasę
, aby poprawnie zarządzać przez javascript. –