如何在ModelView
只读字段上创建字段?
class MyModelView(BaseModelView):
column_list = ('name', 'last_name', 'email')
如何在ModelView
只读字段上创建字段?
class MyModelView(BaseModelView):
column_list = ('name', 'last_name', 'email')
如果您正在谈论带有 SQLAlchemy 模型的 Flask-Admin,并且您通过从 sqlamodel.ModelView 继承来声明视图,则可以将其添加到您的类定义中:
class MyModelView(BaseModelView):
column_list = ('name', 'last_name', 'email')
form_widget_args = {
'email':{
'disabled':True
}
}
我没有足够的声誉来评论@thkang 的答案,这与对我有用的答案非常接近。该disabled
属性从 POST 数据中排除了该字段,但使用readonly
具有预期的效果。
from wtforms.fields import TextField
class ReadonlyTextField(TextField):
def __call__(self, *args, **kwargs):
kwargs.setdefault('readonly', True)
return super(ReadonlyTextField, self).__call__(*args, **kwargs)
当我尝试使用disabled
文本字段时出现奇怪的错误,所以我readonly
改用:
class MyModelView(BaseModelView):
column_list = ('name', 'last_name', 'email')
form_widget_args = {
'email':{
'readonly':True
}
}
尝试这个:
class DisabledTextField(TextField):
def __call__(self, *args, **kwargs):
kwargs.setdefault('disabled', True)
return super(DisabledTextField, self).__call__(*args, **kwargs)
当您在 Jinja 模板中呈现字段时,disabled=true
如果 WTForms 无法识别 kwarg,则只需将其作为属性传递给 html 元素。
<form>
{{ form.example(disabled=True) }}
</form>