【发布时间】:2018-05-14 14:37:42
【问题描述】:
我在自定义QuerySet 中的自定义ModelManager 中覆盖delete 方法(使对象不可删除并将“活动”字段设置为false)。
有什么方法可以忽略管理面板中的自定义管理器,以便我可以从那里实际删除对象?
编辑 1
第一个想法:我可以为自定义管理器指定另一个名称。但现在它被视为默认值......以及如何绕过obj.delete()?
编辑 2
第一个问题的解决方案是在默认的同时添加自定义管理器:
objects = models.Manager()
active_manager = EventManager()
第二个问题的解决方案是在自定义delete方法中添加参数:
def delete(self, *args, **kwargs):
force = kwargs.pop('force', False)
...
【问题讨论】:
-
将参数添加到您的自定义
delete方法中。 -
@BearBrown 有效!您可以创建一个答案以便我接受吗?
-
我添加了,但如果需要请编辑它