示例代码:
# model
class Foos(ndb.Model):
bar = ndb.StringProperty()
# handler
class FoosHandler(BaseHandler):
def get(self):
form = model_form(Foos)
self.render('form.html', form=form)
# template
{{ form.bar() }}
根据wtforms文档,任何具有" multiline = True"属性的StringProperty字段;将使用TextArea小部件呈现。
但是,NDB(仅限DB)不支持multiline = True,所以这不起作用。
有没有办法指定应该使用哪个窗口小部件进行渲染?
答案 0 :(得分:2)
wtforms Fields
可以作为参数传递'widget'来覆盖用于渲染它们的类。使用model_form
时,您可以传递field_args
的dict,其中每个键都是model-property,值是在创建字段时用作关键字-args的dict:
form = model_form(Foos, field_args={'bar': {'widget': wtforms.widgets.TextArea()}})