2017-04-24 25 views
3

我試圖在SelectField中創建一個使用標籤中嵌入的span的選項。但是,該標籤已被轉義並在字段中逐字顯示。在Jinja中使用嵌入式HTML呈現WTForms SelectField選項

我試過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

給你鏈接的問題類似,你需要讓神社知道你呈現值是可信的,不應該被轉義。由於您不直接控制選項的渲染,因此不能使用|safe篩選器,而是在定義該值時需要執行此操作。使用Markup類在Python中將字符串標記爲安全。

from jinja2 import Markup 

('0', Markup('Select an option <span class="caret"></span>')), 
+0

編輯不等,我說得太快。我忘了我在頁面上有兩種形式,並且看到了錯誤的一種(我定義的手冊)。 是的,無論出於何種原因它似乎仍然呈現爲非標記 – user7155137

相關問題