Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Clarified documentation regarding string-form model references.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@3597 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 7fe6fd75ba12b1219e2f4846c7dd3972577bd4f5 1 parent 518d406
@freakboy3742 freakboy3742 authored
Showing with 7 additions and 3 deletions.
  1. +7 −3 docs/model-api.txt
View
10 docs/model-api.txt
@@ -686,8 +686,9 @@ you can use the name of the model, rather than the model object itself::
class Manufacturer(models.Model):
# ...
-Note, however, that support for strings around model names in ``ForeignKey`` is
-quite new, and it can be buggy in some cases.
+Note, however, that you can only use strings to refer to models in the same
+models.py file - you cannot use a string to reference a model in a different
+application, or to reference a model that has been imported from elsewhere.
Behind the scenes, Django appends ``"_id"`` to the field name to create its
database column name. In the above example, the database table for the ``Car``
@@ -809,7 +810,10 @@ here's how you'd represent that::
As with ``ForeignKey``, a relationship to self can be defined by using the
string ``'self'`` instead of the model name, and you can refer to as-yet
-undefined models by using a string containing the model name.
+undefined models by using a string containing the model name. However, you
+can only use strings to refer to models in the same models.py file - you
+cannot use a string to reference a model in a different application, or to
+reference a model that has been imported from elsewhere.
It's suggested, but not required, that the name of a ``ManyToManyField``
(``toppings`` in the example above) be a plural describing the set of related
Please sign in to comment.
Something went wrong with that request. Please try again.