Skip to content

Commit

Permalink
Fixed #14599 -- Added documentation for QuerySet.delete() in the Quer…
Browse files Browse the repository at this point in the history
…ySet API reference. Thanks to abeld for the report. Backport of r14505 from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@14506 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
carljm committed Nov 9, 2010
1 parent 66c72b1 commit a8114d6
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions docs/ref/models/querysets.txt
Expand Up @@ -1246,6 +1246,37 @@ The ``update()`` method does a bulk update and does not call any ``save()``
methods on your models, nor does it emit the ``pre_save`` or ``post_save``
signals (which are a consequence of calling ``save()``).

``delete()``
~~~~~~~~~~~~~~~~~~~~

.. method:: delete()

Performs an SQL delete query on all rows in the :class:`QuerySet`. The
``delete()`` is applied instantly. You cannot call ``delete()`` on a
:class:`QuerySet` that has had a slice taken or can otherwise no longer be
filtered.

For example, to delete all the entries in a particular blog::

>>> b = Blog.objects.get(pk=1)

# Delete all the entries belonging to this Blog.
>>> Entry.objects.filter(blog=b).delete()

Django emulates the SQL constraint ``ON DELETE CASCADE`` -- in other words, any
objects with foreign keys pointing at the objects to be deleted will be deleted
along with them. For example::

blogs = Blog.objects.all()
# This will delete all Blogs and all of their Entry objects.
blogs.delete()

The ``delete()`` method does a bulk delete and does not call any ``delete()``
methods on your models. It does, however, emit the
:data:`~django.db.models.signals.pre_delete` and
:data:`~django.db.models.signals.post_delete` signals for all deleted objects
(including cascaded deletions).

.. _field-lookups:

Field lookups
Expand Down

0 comments on commit a8114d6

Please sign in to comment.