我可以在Django中覆盖User.objects.delete吗?



我曾经在用户离开时删除用户,但是很多模型都与用户有关,从那时起我需要设置相关的外键来清空或删除它们。

但是有些模型将毫无意义,因为相关的用户被删除,例如 Order .因此,我需要设置User.is_active或类似无效的内容,而不是删除数据。

我认为最好是我可以

覆盖User.objects.delete,这样我就不需要修改很多与之相关的业务功能。

> django.contrib.auth.User已经有一个is_active参数,所以你可以设置它。

事实上,从上面链接的文档来看:

我们建议您将此标志设置为 False,而不是删除帐户;这样,如果您的应用程序对用户有任何外键,外键就不会中断。

是的,从技术上讲,您可以通过设置新的管理器来覆盖delete,但这是错误的方法。

最新更新