2009-08-13 14 views
14

आम तौर पर जब आप स्ट्रिंग उत्पादन Jinja2 में के रूप में सुरक्षित आप कुछ इस तरह करते हैं चिह्नित करना चाहते:आप Jinja2 में एक दृश्य (या टेम्पलेट) में तारों को "सुरक्षित" के रूप में कैसे चिह्नित करते हैं?

{{ output_string|safe() }} 

हालांकि, क्या हुआ अगर output_string है हमेशा सुरक्षित? मैं सुरक्षित फ़िल्टर का उपयोग करके हर बार खुद को दोहराना नहीं चाहता हूं।

मेरे पास "ईमेलइज़" नामक एक कस्टम फ़िल्टर है जो ईमेल में आउटपुट के लिए यूआरएल प्रीप्स करता है। एम्परसैंड हमेशा से बच निकलते प्रतीत होते हैं। आउटपुट को सुरक्षित के रूप में चिह्नित करने के लिए मेरे कस्टम फ़िल्टर में कोई तरीका है?

उत्तर

11

उपयोग Markup वर्ग:

वर्ग jinja2.Markup ([स्ट्रिंग])

भाग निकले किए जाने की जरूरत के बिना HTML/XML आउटपुट में शामिल किए जाने के लिए सुरक्षित होने के रूप में एक स्ट्रिंग में चिह्नित करता है।

11

चेक SafeString, जैसे उदाहरण के लिए:

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

यह Jinja2 में काम नहीं करता – Greg