我曾经在用户离开时删除用户,但是很多模型都与用户有关,从那时起我需要设置相关的外键来清空或删除它们。
但是有些模型将毫无意义,因为相关的用户被删除,例如 Order
.因此,我需要设置User.is_active
或类似无效的内容,而不是删除数据。
覆盖User.objects.delete
,这样我就不需要修改很多与之相关的业务功能。
> django.contrib.auth.User
已经有一个is_active
参数,所以你可以设置它。
事实上,从上面链接的文档来看:
我们建议您将此标志设置为 False,而不是删除帐户;这样,如果您的应用程序对用户有任何外键,外键就不会中断。
是的,从技术上讲,您可以通过设置新的管理器来覆盖delete
,但这是错误的方法。