我有一个模特新闻:
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'