我在自定义delete
的自定义QuerySet
中覆盖ModelManager
方法(已将对象设为不可删除并将“有效”字段设置为false)。
有没有办法忽略管理面板中的自定义管理器,所以我实际上可以从那里删除对象?
首先想到:我可以为自定义管理器指定另一个名称。但现在它被视为默认...以及如何绕过obj.delete()?
第一个问题的解决方案是在默认情况下添加自定义管理器:
objects = models.Manager()
active_manager = EventManager()
第二个问题的解决方案是将param添加到自定义delete
方法:
def delete(self, *args, **kwargs):
force = kwargs.pop('force', False)
...
答案 0 :(得分:1)
您可以向自定义delete
方法添加参数。例如:
def delete(self, super=True):
if super:
return self.get_queryset().delete()
else:
# Your custom code here