在我看来:
def delete_payment(request, id):
thePayment = Payment.objects.filter(id=id)
thePayment.delete()
return HttpResponseRedirect('/invoices/open/')
在我的模特中:
def delete(self, *args, **kwargs):
raise Exception('foo')
super(Payment, self).delete(*args, **kwargs)
我发现除非从管理视图中删除实例,否则不会引发异常。也就是说,如果我使用自己的视图,我无法正确调用delete()。
答案 0 :(得分:4)
Manager.filter()
会返回QuerySet
,而非Model
。 QuerySet.delete()
不会调用Model.delete()
,而是直接在数据库上运行。