mirror of
				https://github.com/django/django.git
				synced 2025-11-03 21:25:09 +00:00 
			
		
		
		
	Added more examples to the get_object_or_404 documentation.
This commit is contained in:
		
							parent
							
								
									170eedf583
								
							
						
					
					
						commit
						ebfa508fa3
					
				
					 1 changed files with 30 additions and 3 deletions
				
			
		| 
						 | 
					@ -261,9 +261,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
 | 
				
			||||||
| 
						 | 
					@ -290,6 +291,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…
	
	Add table
		Add a link
		
	
		Reference in a new issue