[1.2.X] Fixed #13538 -- Clarified query examples with more explicit import statements and model vs. instance differentiation. Thanks to yipengh87 and kmtracey for the report, and timo for the patch.

Backport of [14070] from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@14073 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Gabriel Hurley 2010-10-09 08:26:29 +00:00
parent 9584b77c35
commit 91310e759a
1 changed files with 10 additions and 5 deletions

View File

@ -94,18 +94,23 @@ the database until you explicitly call ``save()``.
Saving ``ForeignKey`` and ``ManyToManyField`` fields Saving ``ForeignKey`` and ``ManyToManyField`` fields
---------------------------------------------------- ----------------------------------------------------
Updating ``ForeignKey`` fields works exactly the same way as saving a normal Updating a ``ForeignKey`` field works exactly the same way as saving a normal
field; simply assign an object of the right type to the field in question:: field; simply assign an object of the right type to the field in question.
This example updates the ``blog`` attribute of an ``Entry`` instance ``entry``::
>>> from mysite.blog.models import Entry
>>> entry = Entry.objects.get(pk=1)
>>> cheese_blog = Blog.objects.get(name="Cheddar Talk") >>> cheese_blog = Blog.objects.get(name="Cheddar Talk")
>>> entry.blog = cheese_blog >>> entry.blog = cheese_blog
>>> entry.save() >>> entry.save()
Updating a ``ManyToManyField`` works a little differently; use the ``add()`` Updating a ``ManyToManyField`` works a little differently; use the ``add()``
method on the field to add a record to the relation:: method on the field to add a record to the relation. This example adds the
``Author`` instance ``joe`` to the ``entry`` object::
>> joe = Author.objects.create(name="Joe") >>> from mysite.blog.models import Author
>> entry.authors.add(joe) >>> joe = Author.objects.create(name="Joe")
>>> entry.authors.add(joe)
Django will complain if you try to assign or add an object of the wrong type. Django will complain if you try to assign or add an object of the wrong type.