2014-01-20 32 views
0

我想突出顯示Django管理員表單的驗證消息中的一些文本。如何在Django中部分地跳出模板變量

的結果是這樣的

valid_part 
    <span style="background-color:yellow">invalid_part</span> 
    another_valid_part 

我想離開的是<span ...></span>,但valid_partinvalid_part的一下剛纔輸入的用戶應該被轉義爲避免XSS。

回答

1

你可以做到以下幾點:

#views.py 
from django.utils.html import escape 
valid_part = "<i> hello1 </i>" #needs escaping 
invalid_part = "<i> hello2 </i>" #needs escaping 
error = "{0} <span style='background-color:yellow'>{1}</span>".format(escape(valid_part),escape(invalid_part)) 
return render_to_response('my.html',{"error":error}) 

模板:

#my.html 
{{ error|safe }} 
1

在視圖部分:

'parts': { 
    'valid1': mark_safe(valid1), 
    'valid2': mark_safe(valid2), 
    'invalid': invalid, 
} 

在模板:

{{ parts.valid1 }} {{ parts.invalid }} {{ parts.valid2 }} 
+0

我可以做到這一點,而不需要修改模板django爲管理員生成嗎? – titus

+0

你在模板中有什麼代碼?你能證明嗎? –

+0

它的產生,我不認爲它是一個好主意,試圖修改它 – titus