Django 运行 退出管理页面的功能

Django run function on logging out of admin page

我正在尝试找到一种方法来处理管理员注销(django 管理页面),某个文件夹中的文件将被删除。因为我有一个关于某些管理员交互的功能,文件将被保存到一个文件夹中,我希望这些文件在管理员退出管理页面时被删除。

我只知道 Django 在浏览器关闭时检测用户注销,如下所示:

if settings.SESSION_EXPIRE_AT_BROWSER_CLOSE:

我想做的是覆盖管理站点的注销功能以执行功能并删除文件夹中的文件。我可以看到 https://github.com/django/django/blob/master/django/contrib/admin/sites.py#L349 中存在注销功能,但我如何覆盖它并将我的删除文件功能添加到其中?

如果您想覆盖 logout 函数本身,您必须 class 子 AdminSite class 并创建您自己的 class覆盖注销的实现。

检查如何自定义 AdminSite:How to use custom AdminSite class?

您还可以在用户注销后使用注销信号 运行 添加功能。

检查: https://docs.djangoproject.com/en/dev/ref/contrib/auth/#module-django.contrib.auth.signals