2009-08-13 9 views
14

Zazwyczaj, gdy chcesz oznaczyć jako bezpieczne wyjście ciąg w Jinja2 zrobić coś takiego:Jak zaznaczyć ciągi znaków jako "Bezpieczne" w widoku (lub szablonie) w Jinja2?

{{ output_string|safe() }} 

Jednak co jeśli output_string jest zawsze bezpieczne? Nie chcę powtarzać się za każdym razem, używając bezpiecznego filtra.

Mam niestandardowy filtr o nazwie "emailize", który przygotowuje adresy URL do wysłania w wiadomości e-mail. Ampersanda zawsze wydają się uciekać. Czy jest jakiś sposób w moim niestandardowym filtrze, aby oznaczyć wynik jako bezpieczny?

Odpowiedz

11

Użyj Markup klasa:

klasa jinja2.Markup ([łańcuch])

Zaznacza ciąg jako bezpieczne do włączenia wyjścia HTML/XML bez konieczności być uciekł.

11

Sprawdź SafeString, jak na przykład:

from django.utils.safestring import SafeString 
... 
return context.update({ 
     'html_string': SafeString(html_string), 
}) 
+1

To nie działa w Jinja2 – Greg

Powiązane problemy