我有以下删除方法,这在单独删除一条记录时有效,但在管理员中删除多条记录时无效,即通过列表视图,为什么以及如何修复?
def delete(self, *args, **kwargs):
this = Profile.objects.get(id=self.id)
this.image.delete(save=True)
super(Profile, self).delete(*args, **kwargs)
我有以下删除方法,这在单独删除一条记录时有效,但在管理员中删除多条记录时无效,即通过列表视图,为什么以及如何修复?
def delete(self, *args, **kwargs):
this = Profile.objects.get(id=self.id)
this.image.delete(save=True)
super(Profile, self).delete(*args, **kwargs)
我建议使用signals
删除您的相关图像,请查看文档pre_delete signal
中的。
Django 文档实际上提到了您在管理操作中的确切情况:https ://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/
或者,如果您想在其他地方使用,您可以考虑覆盖默认的 Manager 和 QuerySet 模型Model.objects.delete
。