2012-10-08 36 views
1

我想通過custom widget來設置一個wplace字段的樣式,但是渲染會返回原始html代碼(帶&符號)。爲什麼?如何通過Widget設置WTForm字段?

這是我的小工具:

def my_widget(field, **kwargs): 
    field_id = kwargs.pop('id', field.id) 
    html = [u'<input class="my_class" %s value="" type="text">' % html_params(id=field_id, name=field_id)] 
    return u''.join(html) 

回答

1

你需要告訴比字符串應該被渲染爲是沒有逃脫HTML:

from wtforms.widget.core import HTMLString 

def my_widget(field, **kwargs): 
    .... 
    return HTMLString(u''.join(html)) 
+0

對於任何人讀這篇文章,我不得不這樣做: ' from wtforms.widgets.core import HTMLString' 可能有一個重命名的地方。 – leed25d

相關問題