Flask 如何通过 appbuilder 将字段设置为只读
Flask how to make a field read-only via appbuilder
我用什么替换文本字段,我知道我用我试图设为只读的字段替换了 field2。我得到:
NameError: name *'TextField' is not defined*
Define/override只读字段像这样,先定义一个新的只读字段:
from flask_appbuilder.fieldwidgets import BS3TextFieldWidget
class BS3TextFieldROWidget(BS3TextFieldWidget):
def __call__(self, field, **kwargs):
kwargs['readonly'] = 'true'
return super(BS3TextFieldROWidget, self).__call__(field,
**kwargs)
接下来使用您的新小部件覆盖您的字段:
class ExampleView(ModelView):
datamodel = SQLAInterface(ExampleModel)
edit_form_extra_fields = {'field2': TextField('field2',
widget=BS3TextFieldROWidget())}
确保在文件顶部声明了它
from wtforms.fields import TextField
我用什么替换文本字段,我知道我用我试图设为只读的字段替换了 field2。我得到:
NameError: name *'TextField' is not defined*
Define/override只读字段像这样,先定义一个新的只读字段:
from flask_appbuilder.fieldwidgets import BS3TextFieldWidget
class BS3TextFieldROWidget(BS3TextFieldWidget):
def __call__(self, field, **kwargs):
kwargs['readonly'] = 'true'
return super(BS3TextFieldROWidget, self).__call__(field,
**kwargs)
接下来使用您的新小部件覆盖您的字段:
class ExampleView(ModelView):
datamodel = SQLAInterface(ExampleModel)
edit_form_extra_fields = {'field2': TextField('field2',
widget=BS3TextFieldROWidget())}
确保在文件顶部声明了它
from wtforms.fields import TextField