From f8632572ad84b05256423841cee6335490ba0698 Mon Sep 17 00:00:00 2001 From: Juergen Schackmann Date: Thu, 17 Oct 2013 03:48:03 +0200 Subject: [PATCH] Fixed #21212 -- Documented the reverse name for OneToOneField. Thanks bjb at credil.org for the report. --- docs/ref/models/fields.txt | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/ref/models/fields.txt b/docs/ref/models/fields.txt index 0a3abae644..9921322051 100644 --- a/docs/ref/models/fields.txt +++ b/docs/ref/models/fields.txt @@ -1325,6 +1325,27 @@ related. This works exactly the same as it does for :class:`ForeignKey`, including all the options regarding :ref:`recursive ` and :ref:`lazy ` relationships. +If you do not specify the the :attr:`~ForeignKey.related_name` argument for +the ``OneToOneField``, Django will use the lower-case name of the current model +as default value. + +With the following example:: + + from django.db import models + from django.contrib.auth.models import User + + class MySpecialUser(models.Model): + user = models.OneToOneField(User) + supervisor = models.OneToOneField(User, related_name='supervisor_of') + +your resulting ``User`` model will have the following attributes:: + + >>> user = User.objects.get(pk=1) + >>> hasattr(user, 'myspecialuser') + True + >>> hasattr(user, 'supervisor_of') + True + .. _onetoone-arguments: Additionally, ``OneToOneField`` accepts all of the extra arguments @@ -1337,3 +1358,6 @@ accepted by :class:`ForeignKey`, plus one extra argument: link back to the parent class, rather than the extra ``OneToOneField`` which would normally be implicitly created by subclassing. + +See :doc:`One-to-one relationships ` for usage +examples of ``OneToOneField``.