[1.6.x] Added more examples to the get_object_or_404 documentation.
Backport of ebfa508fa3
from master.
This commit is contained in:
parent
ac2ef4af7c
commit
20e322f4bf
|
@ -239,9 +239,10 @@ Required arguments
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
``klass``
|
``klass``
|
||||||
A :class:`~django.db.models.Model`, :class:`~django.db.models.Manager` or
|
A :class:`~django.db.models.Model` class,
|
||||||
:class:`~django.db.models.query.QuerySet` instance from which to get the
|
a :class:`~django.db.models.Manager`,
|
||||||
object.
|
or a :class:`~django.db.models.query.QuerySet` instance from which to get
|
||||||
|
the object.
|
||||||
|
|
||||||
``**kwargs``
|
``**kwargs``
|
||||||
Lookup parameters, which should be in the format accepted by ``get()`` and
|
Lookup parameters, which should be in the format accepted by ``get()`` and
|
||||||
|
@ -268,6 +269,32 @@ This example is equivalent to::
|
||||||
except MyModel.DoesNotExist:
|
except MyModel.DoesNotExist:
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
|
The most common use case is to pass a :class:`~django.db.models.Model`, as
|
||||||
|
shown above. However, you can also pass a
|
||||||
|
:class:`~django.db.models.query.QuerySet` instance::
|
||||||
|
|
||||||
|
queryset = Book.objects.filter(title__startswith='M')
|
||||||
|
get_object_or_404(queryset, pk=1)
|
||||||
|
|
||||||
|
The above example is a bit contrived since it's equivalent to doing::
|
||||||
|
|
||||||
|
get_object_or_404(Book, title__startswith='M', pk=1)
|
||||||
|
|
||||||
|
but it can be useful if you are passed the ``queryset`` variable from somewhere
|
||||||
|
else.
|
||||||
|
|
||||||
|
Finally, you can also use a :class:`~django.db.models.Manager`. This is useful
|
||||||
|
for example if you have a
|
||||||
|
:ref:`custom manager<custom-managers>`::
|
||||||
|
|
||||||
|
get_object_or_404(Book.dahl_objects, title='Matilda')
|
||||||
|
|
||||||
|
You can also use
|
||||||
|
:class:`related managers<django.db.models.fields.related.RelatedManager>`::
|
||||||
|
|
||||||
|
author = Author.objects.get(name='Roald Dahl')
|
||||||
|
get_object_or_404(author.book_set, title='Matilda')
|
||||||
|
|
||||||
Note: As with ``get()``, a
|
Note: As with ``get()``, a
|
||||||
:class:`~django.core.exceptions.MultipleObjectsReturned` exception
|
:class:`~django.core.exceptions.MultipleObjectsReturned` exception
|
||||||
will be raised if more than one object is found.
|
will be raised if more than one object is found.
|
||||||
|
|
Loading…
Reference in New Issue