Flask-Admin ModelView中的只读文本字段

时间:2013-02-14 12:25:57

标签: python flask flask-sqlalchemy flask-admin

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

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

5 个答案:

答案 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>