Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.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 如何在Django中检测管理员何时修改用户_Python_Django_Django Admin - Fatal编程技术网

Python 如何在Django中检测管理员何时修改用户

Python 如何在Django中检测管理员何时修改用户,python,django,django-admin,Python,Django,Django Admin,我为管理员和普通用户使用Django的用户模型。有时管理员需要手动修改用户帐户,例如更改电子邮件或禁用某些帐户。这些修改是从Django附带的基本管理面板完成的 问题是,如何检测这些修改事件?我需要这个做一些日志条目和做其他事情 我已经尝试了用户的pre_save signal,它可以用来检测哪些字段将发生更改,但问题是我不知道save()的来源。该模型保存在该方法中 您可以注销用户模型的默认管理员,并使用覆盖的保存模型()向您自己的模型管理员注册: 您可以通过检查form.changed\u

我为管理员和普通用户使用Django的用户模型。有时管理员需要手动修改用户帐户,例如更改电子邮件或禁用某些帐户。这些修改是从Django附带的基本管理面板完成的

问题是,如何检测这些修改事件?我需要这个做一些日志条目和做其他事情

我已经尝试了用户的pre_save signal,它可以用来检测哪些字段将发生更改,但问题是我不知道save()的来源。

该模型保存在该方法中

您可以注销
用户
模型的默认管理员,并使用覆盖的
保存模型()向您自己的
模型管理员
注册:


您可以通过检查
form.changed\u data
来检查
save\u model
方法中的字段是否已更改。这是已更改字段名称的列表。下面是一个小代码

def save_model(self, request, obj, form, change):
    if 'parking_location' in form.changed_data:
        messages.info(request, "Parking location has changed")
    else:
        messages.info(request, "Parking location has not changed")
    super(MyVehiclesAdmin, self).save_model(request, obj, form, change)
def save_model(self, request, obj, form, change):
    if 'parking_location' in form.changed_data:
        messages.info(request, "Parking location has changed")
    else:
        messages.info(request, "Parking location has not changed")
    super(MyVehiclesAdmin, self).save_model(request, obj, form, change)