使用管理面板

时间:2017-07-10 07:18:38

标签: python django django-models django-admin

我使用Django管理界面能够轻松修改现有MySQL数据库中的条目。我的一个表包含一个密码列,其中包含用户的哈希密码。现在,当我使用管理面板创建新用户时,我必须在外部计算密码哈希,然后将其粘贴到管理面板中。无论如何,我可以提供某种“预插入挂钩”,以便我可以直接输入密码,钩子计算哈希并将其传递给管理面板进行保存?

1 个答案:

答案 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

你也可以覆盖用户的保存方法,但这更像是一个大锤的方法。