我使用Django管理界面能够轻松修改现有MySQL数据库中的条目。我的一个表包含一个密码列,其中包含用户的哈希密码。现在,当我使用管理面板创建新用户时,我必须在外部计算密码哈希,然后将其粘贴到管理面板中。无论如何,我可以提供某种“预插入挂钩”,以便我可以直接输入密码,钩子计算哈希并将其传递给管理面板进行保存?
答案 0 :(得分:1)
您可以override the admin form使用AdminPasswordChangeForm等表单来验证新密码是否匹配,然后在其save
方法中相应地设置密码:
def save(self, commit=True):
password = self.cleaned_data["password1"]
self.user.set_password(password)
if commit:
self.user.save()
return self.user
你也可以覆盖用户的保存方法,但这更像是一个大锤的方法。