Fixed #16000 -- reference natural keys in contenttypes documentation. Thanks jsdalton.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16536 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Simon Meers 2011-07-10 21:52:03 +00:00
parent 4d920c5ecd
commit 86ac8c1327
1 changed files with 18 additions and 0 deletions

View File

@ -192,6 +192,15 @@ The ``ContentTypeManager``
:class:`~django.contrib.contenttypes.models.ContentType` instance :class:`~django.contrib.contenttypes.models.ContentType` instance
representing that model. representing that model.
.. method:: get_by_natural_key(app_label, model)
Returns the :class:`~django.contrib.contenttypes.models.ContentType`
instance uniquely identified by the given application label and model
name. The primary purpose of this method is to allow
:class:`~django.contrib.contenttypes.models.ContentType` objects to be
referenced via a :ref:`natural key<topics-serialization-natural-keys>`
during deserialization.
The :meth:`~ContentTypeManager.get_for_model()` method is especially The :meth:`~ContentTypeManager.get_for_model()` method is especially
useful when you know you need to work with a useful when you know you need to work with a
:class:`ContentType <django.contrib.contenttypes.models.ContentType>` but don't :class:`ContentType <django.contrib.contenttypes.models.ContentType>` but don't
@ -285,6 +294,15 @@ model:
should evaluate the models you expect to be pointing to and determine should evaluate the models you expect to be pointing to and determine
which solution will be most effective for your use case. which solution will be most effective for your use case.
.. admonition:: Serializing references to ``ContentType`` objects
If you're serializing data (for example, when generating
:class:`~django.test.TestCase.fixtures`) from a model that implements
generic relations, you should probably be using a natural key to uniquely
identify related :class:`~django.contrib.contenttypes.models.ContentType`
objects. See :ref:`natural keys<topics-serialization-natural-keys>` and
:djadminopt:`dumpdata --natural <--natural>` for more information.
This will enable an API similar to the one used for a normal This will enable an API similar to the one used for a normal
:class:`~django.db.models.ForeignKey`; :class:`~django.db.models.ForeignKey`;
each ``TaggedItem`` will have a ``content_object`` field that returns the each ``TaggedItem`` will have a ``content_object`` field that returns the