[1.7.x] Fixed #22048 - Enhanced docs to cover nonexistent one-to-one relationships.

Thanks EvilDMP for the suggestion.

Backport of ec08d62a20 from master
This commit is contained in:
Adam Kaliński 2014-02-22 20:29:55 +01:00 committed by Tim Graham
parent 57a373b08c
commit eb1600e9d1
2 changed files with 20 additions and 4 deletions

View File

@ -1469,6 +1469,15 @@ your resulting ``User`` model will have the following attributes::
>>> hasattr(user, 'supervisor_of')
True
A ``DoesNotExist`` exception is raised when accessing the reverse relationship
if an entry in the related table doesn't exist. For example, if a user doesn't
have a supervisor designated by ``MySpecialUser``::
>>> user.supervisor_of
Traceback (most recent call last):
...
DoesNotExist: User matching query does not exist.
.. _onetoone-arguments:
Additionally, ``OneToOneField`` accepts all of the extra arguments

View File

@ -61,10 +61,17 @@ A Place can access its restaurant, if available::
p2 doesn't have an associated restaurant::
>>> p2.restaurant
Traceback (most recent call last):
...
DoesNotExist: Restaurant matching query does not exist.
>>> from django.core.exceptions import ObjectDoesNotExist
>>> try:
>>> p2.restaurant
>>> except ObjectDoesNotExist:
>>> print("There is no restaurant here.")
There is no restaurant here.
You can also use ``hasattr`` to avoid the need for exception catching::
>>> hasattr(p2, 'restaurant')
False
Set the place using assignment notation. Because place is the primary key on
Restaurant, the save will create a new restaurant::