如何在ModelView
只读取字段上创建字段?
class MyModelView(BaseModelView):
column_list = ('name', 'last_name', 'email')
答案 0 :(得分:13)
如果您正在讨论使用SQLAlchemy模型的Flask-Admin,并且您通过继承sqlamodel.ModelView来声明视图,则可以将其添加到类定义中:
class MyModelView(BaseModelView):
column_list = ('name', 'last_name', 'email')
form_widget_args = {
'email':{
'disabled':True
}
}
答案 1 :(得分:10)
我没有足够的声誉评论@ 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)
答案 2 :(得分:7)
试试这个:
class DisabledTextField(TextField):
def __call__(self, *args, **kwargs):
kwargs.setdefault('disabled', True)
return super(DisabledTextField, self).__call__(*args, **kwargs)
答案 3 :(得分:7)
当我尝试将class Buerger extends React.Component {
constructor(props) {
super(props);
this.gehaltHandler = this.gehaltChange.bind(this)
}
用于文本字段时出现了奇怪的错误,因此我使用了disabled
代替:
readonly
答案 4 :(得分:6)
当您在Jinja模板中渲染字段时,只需传入disabled=true
如果WTForms无法识别kwarg,它就会将其传递给html元素的属性。
<form>
{{ form.example(disabled=True) }}
</form>