Flask 管理员创建用户?

Flask Admin create user?

我正在尝试构建一个只有特定用户才能登录的网络应用程序。因此,虽然我的样板应用程序上有一个注册页面,但我想禁用它并使用 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)

我不知道您为什么看不到电子邮件字段,因为您没有包含用户管理视图的定义,但以下划线开头的参数(如 _password)将被 flask-admin 自动隐藏。您可以明确地将其包含在您的用户管理员中 class:

class UserAdminView(BaseModelView):
    ...
    form_columns = (..., '_password', ...)
    ...

如果可以重新生成或迁移数据库,您也可以只从模型中删除下划线。

编辑: 看起来您也可以在用户管理视图中声明 ignore_hidden = False