我正在尝试在SelectField
中创建一个在标签中使用嵌入式span
的选项。但是,标签会在字段中进行转义和显示。
我已经尝试Embed HTML tag in Flask WTForms field但在这种情况下它不起作用(可能是因为需要转义的文本在列表中)。
是否可以在不编写自己的渲染器的情况下在选项标签中渲染HTML?
class myForm(Form):
myChoices = [
('0','Select an option <span class="caret"></span>'),
('1','Option 1'),
('2','Option 2')
]
optionSelect = SelectField('Select', choices=myChoices, validators=[Required()])
答案 0 :(得分:0)
与您关联的问题类似,您需要让Jinja知道您呈现的价值是值得信赖的,不应该被转义。由于您不能直接控制选项的呈现,因此您无法使用|safe
过滤器,而是在定义值时需要执行此操作。使用Markup
类在Python中将字符串标记为安全。
from jinja2 import Markup
('0', Markup('Select an option <span class="caret"></span>')),