2009-08-13 15 views
14

, wenn Sie Zeichenfolge Ausgabe markieren als sicher in Jinja2 wollen Sie so etwas wie dies in der Regel tun:Wie markieren Sie Zeichenfolgen in einer Ansicht (oder der Vorlage) in Jinja2 als "Sicher"?

{{ output_string|safe() }} 

Was aber, wenn output_string sicher immer ist? Ich möchte mich nicht jedes Mal wiederholen, wenn ich den sicheren Filter benutze.

Ich habe einen benutzerdefinierten Filter namens "emailize", der URLs für die Ausgabe in einer E-Mail vorbereitet. Die Ampersands scheinen immer entkommen zu sein. Gibt es in meinem benutzerdefinierten Filter eine Möglichkeit, die Ausgabe als sicher zu kennzeichnen?

Antwort

11

Verwenden Sie die Markup Klasse:

Klasse jinja2.Markup ([string])

Markiert eine Zeichenfolge als für die Aufnahme in HTML/XML-Ausgabe, sicher zu sein, ohne dass entgangen sein.

11

prüfen SafeString, wie zum Beispiel:

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

Das ist nicht in Jinja2 funktioniert – Greg