2010-11-29 20 views
3

À mon avis:() une instance

def delete_payment(request, id): 
    thePayment = Payment.objects.filter(id=id) 
    thePayment.delete() 
    return HttpResponseRedirect('/invoices/open/') 

Dans mon modèle:

def delete(self, *args, **kwargs): 
    raise Exception('foo') 
    super(Payment, self).delete(*args, **kwargs) 

Je trouve que l'exception ne soit pas relevé à moins que je supprime l'instance à partir du vue d'admin. C'est-à-dire que je ne peux pas appeler delete() correctement si j'utilise ma propre vue.

Répondre

4

Manager.filter() renvoie QuerySet, et non Model. QuerySet.delete() n'invoque pas Model.delete() mais fonctionne directement sur la base de données.

Questions connexes