14

如何在ModelView只读字段上创建字段?

class MyModelView(BaseModelView):
    column_list = ('name', 'last_name', 'email')
4

5 回答 5

20

如果您正在谈论带有 SQLAlchemy 模型的 Flask-Admin,并且您通过从 sqlamodel.ModelView 继承来声明视图,则可以将其添加到您的类定义中:

class MyModelView(BaseModelView):
    column_list = ('name', 'last_name', 'email')
    form_widget_args = {
        'email':{
            'disabled':True
        }
    }
于 2013-09-17T00:40:42.137 回答
11

我没有足够的声誉来评论@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)
于 2014-05-30T16:38:25.110 回答
8

当我尝试使用disabled文本字段时出现奇怪的错误,所以我readonly改用:

class MyModelView(BaseModelView):
    column_list = ('name', 'last_name', 'email')
    form_widget_args = {
        'email':{
            'readonly':True
        }
    }
于 2017-08-11T13:10:46.490 回答
7

尝试这个:

class DisabledTextField(TextField):
  def __call__(self, *args, **kwargs):
    kwargs.setdefault('disabled', True)
    return super(DisabledTextField, self).__call__(*args, **kwargs)
于 2013-03-07T09:51:54.960 回答
6

当您在 Jinja 模板中呈现字段时,disabled=true如果 WTForms 无法识别 kwarg,则只需将其作为属性传递给 html 元素。

<form>
{{ form.example(disabled=True) }}
</form>
于 2013-02-14T13:53:24.477 回答