Commit ec08d62a authored by Adam Kaliński's avatar Adam Kaliński Committed by Tim Graham
Browse files

Fixed #22048 - Enhanced docs to cover nonexistent one-to-one relationships.

Thanks EvilDMP for the suggestion.
parent 60d2dde2
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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
+11 −4
Original line number Diff line number Diff line
@@ -61,10 +61,17 @@ A Place can access its restaurant, if available::

p2 doesn't have an associated restaurant::

    >>> from django.core.exceptions import ObjectDoesNotExist
    >>> try:
    >>>     p2.restaurant
    Traceback (most recent call last):
        ...
    DoesNotExist: Restaurant matching query does not exist.
    >>> 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::