Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在使用“管理”面板插入模型字段之前,对其进行预处理_Python_Django_Django Models_Django Admin - Fatal编程技术网

Python 在使用“管理”面板插入模型字段之前,对其进行预处理

Python 在使用“管理”面板插入模型字段之前,对其进行预处理,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,我使用Django管理界面可以轻松地修改现有MySQL数据库中的条目。我的一个表包含一个密码列,其中包含用户的哈希密码。现在,当我使用管理面板创建一个新用户时,我必须从外部计算密码散列,然后将其粘贴到管理面板中。我是否可以提供某种类型的“预插入钩子”,以便直接输入密码,钩子计算哈希值并将其传递给要保存的管理面板?您可以使用这样的表单验证新密码匹配,然后在其save方法中相应地设置密码: def save(self, commit=True): password = self.cleane

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

您可以使用这样的表单验证新密码匹配,然后在其
save
方法中相应地设置密码:

def save(self, commit=True):
    password = self.cleaned_data["password1"]
    self.user.set_password(password)
    if commit:
        self.user.save()
    return self.user
您还可以覆盖用户的save方法,但这更像是一种大锤式的方法