python – 在flask-admin中的ModelView中为表单自定义小部件

我有一个模特新闻:

class News(db.Model):
    __tablename__ = 'news'
    id = db.Column(db.Integer, primary_key=True)
    content = db.Column(db.String)
    active_from = db.Column(db.DateTime)
    active_until = db.Column(db.DateTime)

它被集成到flask-admin中,如下所示:

class MyModelView(ModelView):
    def is_accessible(self):
        return current_user.usergroup.name == 'admin'

admin.add_view(MyModelView(News, db.session))

但是当我打开我的管理页面时,我看到了news.content的输入类型=’文本’小部件.我怎样才能把textarea放在那里呢?

最佳答案 在代码中,db.String列是
mapped到StringFields,db.Text列是
mapped到TextAreaFields,它们分别向用户显示
text inputs
textareas.

要覆盖此行为,您可以设置form_overrides字段:

from wtforms.fields import TextAreaField

class MyModelView(ModelView):
    form_overrides = dict(string=TextAreaField)
    def is_accessible(self):
        return current_user.usergroup.name == 'admin'
点赞