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

时间:2016-01-19 07:33:24

标签: python django django-orm

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

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

我认为最好如果我可以覆盖User.objects.delete,那么我就不需要修改与之相关的许多业务功能。

1 个答案:

答案 0 :(得分:6)

<?php //somewhere set a value $var = "a value"; ?> <script> // then echo it into the js/html stream // and assign to a js variable spge = '<?php echo $var ;?>'; // then alert(spge); </script> 已有is_active参数,因此您可以设置该参数。

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

  

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

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