示例:
>>> example.label
λ<sub>blabla</sub>
>>> example.label_tag()
[...]&#x3bb;<blabla>[...]
即使在mark_safe(example.label)
之前调用label_tag()
也不会阻止Django转义HTML。如何让label_tag()
返回非转义标签?
答案 0 :(得分:2)
Wraps the given contents in a <label>, if the field has an ID attribute.
contents should be 'mark_safe'd to avoid HTML escaping. If contents
aren't given, uses the field's HTML-escaped label.
所以
example.label_tag(contents=mark_safe(example.label))
应该工作..我无法看到解决这个问题的另一种方法
答案 1 :(得分:1)
试试这个:
from HTMLParser import HTMLParser
h = HTMLParser()
unescaped = h.unescape(example.label_tag())
print unescaped
答案 2 :(得分:0)
定义字段时,必须将标签标记为安全。
class MyForm(forms.Form):
example = forms.Field(label=mark_safe('λ<sub>blabla</sub>'))
示例:
>>> f = MyForm({'example': 'foo'})
>>> str(f)
'<tr><th><label for="id_example">λ<sub>blabla</sub>:</label></th><td><input id="id_example" name="example" type="text" value="foo" /></td></tr>'