我有一个crud表单,因此管理员可以编辑用户。管理员需要能够在必要时更改密码。我正在使用:
crud.update(db.auth_user, user_id, deletable=False)
创建表单,如果输入密码,它可以正常工作。但是如果我不想更改密码,它会重置密码而用户无法登录。看起来密码字段正在使用加密版本进行更新并导致其重置。如何防止这种情况发生?
答案 0 :(得分:0)
如果变量为空或无效,你可以从form.vars中删除它吗?由于web2py集成了很多auth资源,我从来没有真正搞过密码字段的东西,但这可能有用。
您可以使用crud.update(..., onvalidation=somefunction)
并在密码字段中检查有效值,如果找不到,del form.vars.password
?或者将form.vars.password设置为None?
在表单被接受(验证)之后,但在数据库中输入/更新值之前,将发生失效。