python - Flask-Admin 模型 View 配置

标签 python flask flask-admin

我正在尝试调整 Flask-Admin 模型 View 以仅在“编辑”和“创建”选项卡中显示某些列。到目前为止,我已经能够通过将其放入我的子类中来正确配置列表:

class AuthUserView(AuthModelView):
    column_list = ('username', 'email', 'roles', 'last_login_at', 'login_count')

效果很好!但现在我的问题是这样的。还有一个附加到用户的密码字段。当编辑选项卡打开时,我希望该列不在编辑字段中。此外,当我创建一个用户时,我希望密码字段在那里,但在将输入存储到数据库之前对其进行加密(这意味着我只需要在“提交”和实际存储之间拦截数据。

是否可以进行这些自定义?感谢您的帮助!

编辑:所以我可以通过将此代码添加到我的 View 中来删除密码字段:

form_excluded_columns = ('password')

除了现在这会将它从编辑和创建表单中删除。不过,我只想将它从一个中删除。

最佳答案

成功了!图如果有人遇到这个问题,我会把我的答案放在这里...这是我最终的 AuthUserView 的样子

class AuthUserView(AuthModelView):
    form_edit_rules = ('roles', 'active', 'username', 'email', 'confirmed_at', 'last_login_at', 'current_login_at', 'last_login_ip', 'current_login_ip', 'login_count')
    column_list = ('username', 'email', 'roles', 'last_login_at', 'login_count')

    def create_model(self, form):
        form.password.data = encrypt_password(form.password.data)
        super(AuthUserView, self).create_model(form)

我使用 form_edit_rules 从编辑字段中删除密码 key 。然后我覆盖 create_model 来加密密码,然后调用 super 方法来实际创建模型。

关于python - Flask-Admin 模型 View 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25898397/

相关文章:

python - 我在 python 中遇到字符串和 for 循环问题

python - LibSVM 预测不工作

python - 如何在 Flask 中安全获取用户的真实 IP 地址(使用 mod_wsgi)?

python - Flask - jinja 模板 forloop 增加循环索引

python - Flask-sqlalchemy:如何制作一个可选择按钮来根据用户的角色 ID 选择用户?

python - 为什么 flask-admin 需要 mongoengine 的 ListField 有字段类型?

用于探测 smtp 服务器的 Python 脚本

python - RabbitMQ python 库检查状态

python - 导入错误 : No module named psycopg2 after install

python - Flask-admin 批处理操作,通过弹出模式窗口进行参数