我正在尝试构建一个只有特定用户才能登录的网络应用。因此,当我在样板应用程序上有一个注册页面时,我想禁用它并使用flask admin来创建和管理用户。
但是,当我登录管理页面时,某些字段(如电子邮件和密码)不可用。如何将这些字段放入管理菜单上的“创建”选项卡?请参阅以下用户模型。
class User(db.Model, UserMixin):
__tablename__ = 'users'
first_name = db.Column(db.String)
last_name = db.Column(db.String)
email = db.Column(db.String, primary_key=True)
confirmation = db.Column(db.Boolean)
_password = db.Column(db.String)
email_confirmation_sent_on = db.Column(db.DateTime, nullable=True)
email_confirmed_on = db.Column(db.DateTime, nullable=True)
registered_on = db.Column(db.DateTime, nullable=True)
last_logged_in = db.Column(db.DateTime, nullable=True)
current_logged_in = db.Column(db.DateTime, nullable=True)
答案 0 :(得分:1)
我不知道您为什么没有看到电子邮件字段,因为您没有包含用户管理视图的定义,但以下划线开头的参数(如_password
)将自动由flask-admin隐藏。您可以在用户管理类中明确地包含它:
class UserAdminView(BaseModelView):
...
form_columns = (..., '_password', ...)
...
如果可以重新生成或迁移数据库,您也可以从模型中删除下划线。
编辑:
看起来您也可以在用户管理视图上声明ignore_hidden = False
。