Skip to content

Commit

Permalink
Fixed #12519 -- Corrected documentation on .raw() queries. Thanks to …
Browse files Browse the repository at this point in the history
…boralyl for the report and patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@12561 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
freakboy3742 committed Feb 24, 2010
1 parent d792737 commit 6f9ba54
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions docs/topics/db/sql.txt
Expand Up @@ -25,8 +25,10 @@ return model instances:

.. method:: Manager.raw(raw_query, params=None, translations=None)

This method method takes a raw SQL query, executes it, and returns model
instances.
This method method takes a raw SQL query, executes it, and returns a
:class:`~django.db.models.query.RawQuerySet` instance. This
:class:`~django.db.models.query.RawQuerySet` instance can be iterated
over just like an normal QuerySet to provide object instances.

This is best illustrated with an example. Suppose you've got the following model::

Expand All @@ -37,8 +39,10 @@ This is best illustrated with an example. Suppose you've got the following model

You could then execute custom SQL like so::

>>> Person.objects.raw('SELECT * from myapp_person')
[<Person: John Doe>, <Person: Jane Doe>, ...]
>>> for p in Person.objects.raw('SELECT * FROM myapp_person'):
... print p
John Smith
Jane Jones

.. admonition:: Model table names

Expand Down Expand Up @@ -110,7 +114,7 @@ Deferring model fields

Fields may also be left out::

>>> people = Person.objects.raw('SELECT id, first_name FROM myapp_person'):
>>> people = Person.objects.raw('SELECT id, first_name FROM myapp_person')

The ``Person`` objects returned by this query will be :ref:`deferred
<queryset-defer>` model instances. This means that the fields that are omitted
Expand Down Expand Up @@ -142,7 +146,7 @@ of people with their ages calculated by the database::

>>> people = Person.objects.raw('SELECT *, age(birth_date) AS age FROM myapp_person')
>>> for p in people:
... print "%s is %s." % (p.first_name, p.age)
... print "%s is %s." % (p.first_name, p.age)
John is 37.
Jane is 42.
...
Expand Down

0 comments on commit 6f9ba54

Please sign in to comment.