Those are two very different methods, instance.delete() on a model
calls the instance's delete method, which (eventually) via the
Model.delete() method, sends a pre_delete signal, issues a SQL
statement to delete that row from the database and finally issues a
post_delete signal.
queryset.delete() does not do any of that, it simply constructs a
"DELETE FROM ... WHERE ..." query and executes it.
So why does your instance.delete() not work? Top contenders:
1) You have overridden the delete() method, and you don't call the
super class method
2) You have a pre_delete signal that refuses the deletion (altho I
think you would receive an exception in this case?)
3) Something I haven't considered \o/
Cheers
Tom
1) You have overridden the delete() method, and you don't call the
super class method