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

kxx*_*ing 0 python django django-orm

我曾经在用户离开时删除了一个用户,但很多模型都与User有关,我需要设置相关的外键来清空或删除它们.

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

我认为这将是最好的如果我可以覆盖User.objects.delete,所以我不需要修改很多与之相关的业务功能.

Say*_*yse 6

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

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

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

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