Korzystam z interfejsu „wiadomości”, aby przekazywać wiadomości do użytkownika w następujący sposób:
request.user.message_set.create(message=message)
Chciałbym dołączyć html do mojej {{ message }}
zmiennej i renderować ją bez uciekania od znaczników w szablonie.
django
django-templates
Xpanta
źródło
źródło
€
), dolara przeszedł z widoku, to jest właściwy sposób.autoescape off
i nieon
. Popełniłem ten błąd i odkryłem go dopiero później.Jeśli chcesz zrobić coś bardziej skomplikowanego z tekstem, możesz utworzyć własny filtr i trochę magii przed zwróceniem html. Z plikiem szablonu wyglądającym tak:
Następnie możesz dodać to do pliku szablonu
A to dałoby dobry wynik.
źródło
Możesz renderować szablon w kodzie w następujący sposób:
Więcej informacji można znaleźć w dokumentacji Django .
źródło
Użyj,
autoescape
aby wyłączyć ucieczkę HTML:źródło
Najprostszym sposobem jest użycie
safe
filtra:Aby uzyskać więcej informacji, zapoznaj się z dokumentacją Django dotyczącą bezpiecznego filtra .
źródło
Nie trzeba używać filtra ani tagu w szablonie. Wystarczy użyć format_html (), aby przetłumaczyć zmienną na HTML, a Django automatycznie wyłączy dla ciebie zmienną.
Sprawdź tutaj https://docs.djangoproject.com/en/3.0/ref/utils/#django.utils.html.format_html
źródło