From 7fe6fd75ba12b1219e2f4846c7dd3972577bd4f5 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Thu, 17 Aug 2006 00:02:51 +0000 Subject: [PATCH] Clarified documentation regarding string-form model references. git-svn-id: http://code.djangoproject.com/svn/django/trunk@3597 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- docs/model-api.txt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/model-api.txt b/docs/model-api.txt index c4d19db3bf..84337a0ae3 100644 --- a/docs/model-api.txt +++ b/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