diff options
Diffstat (limited to 'docs/db-api.txt')
| -rw-r--r-- | docs/db-api.txt | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/docs/db-api.txt b/docs/db-api.txt index 6a3fe88080..6299f3497d 100644 --- a/docs/db-api.txt +++ b/docs/db-api.txt @@ -392,7 +392,7 @@ This returns the sixth through tenth objects (``OFFSET 5 LIMIT 5``):: Entry.objects.all()[5:10] You can also slice from the item ''N'' to the end of the queryset. For -example, to return everything from the fixth item onwards:: +example, to return everything from the sixth item onwards:: Entry.objects.all()[5:] @@ -527,7 +527,7 @@ applied to a query, not even the default ordering, call ``order_by()`` with no parameters. **New in Django development version:** The syntax for ordering across related -models has changed. See the `Django 0.96 documentation`_ for the old behaviour. +models has changed. See the `Django 0.96 documentation`_ for the old behavior. .. _Django 0.96 documentation: http://www.djangoproject.com/documentation/0.96/model-api/#floatfield @@ -540,9 +540,9 @@ backend normally orders them. **New in Django development version** -If you want to reverse the order in which a queryset's elements are returned, -you can use the ``reverse()`` method. Calling ``reverse()`` a second time -restores the ordering back to the normal direction. +Use the ``reverse()`` method to reverse the order in which a queryset's +elements are returned. Calling ``reverse()`` a second time restores the +ordering back to the normal direction. To retrieve the ''last'' five items in a queryset, you could do this:: @@ -552,7 +552,7 @@ Note that this is not quite the same as slicing from the end of a sequence in Python. The above example will return the last item first, then the penultimate item and so on. If we had a Python sequence and looked at ``seq[:-5]``, we would see the fifth-last item first. Django doesn't support -that mode of access (slicing from the end), since it is not possible to do it +that mode of access (slicing from the end), because it's not possible to do it efficiently in SQL. ``distinct()`` @@ -570,7 +570,7 @@ query spans multiple tables, it's possible to get duplicate results when a .. note:: Any fields used in an ``order_by()`` call are included in the SQL ``SELECT`` columns. This can sometimes lead to unexpected results when - used in conjuntion with ``distinct()``. If you order by fields from a + used in conjunction with ``distinct()``. If you order by fields from a related model, those fields will be added to the selected columns and they may make otherwise duplicate rows appear to be distinct. Since the extra columns don't appear in the returned results (they are only there to @@ -683,7 +683,7 @@ dictionaries, it returns a list of tuples. Each tuple contains the value from the respective field passed into the ``values_list()`` call -- so the first item is the first field, etc. For example:: - >>> Entry.objects.values_list('id', 'headling') + >>> Entry.objects.values_list('id', 'headline') [(1, u'First entry'), ...] If you only pass in a single field, you can also pass in the ``flat`` @@ -837,7 +837,7 @@ models. In these cases, you can pass the related field names to ``select_related()`` and it will only follow those relations. You can even do this for models that are more than one relation away by separating the field names with double underscores, just as for filters. For example, if we have -thise model:: +this model:: class Room(models.Model): # ... @@ -1660,7 +1660,7 @@ entry. The entries select by the second filter may or may not be the same as the entries in the first filter. We are filtering the ``Blog`` items with each filter statement, not the ``Entry`` items. -All of this behaviour also applies to ``exclude()``: all the conditions in a +All of this behavior also applies to ``exclude()``: all the conditions in a single ``exclude()`` statement apply to a single instance (if those conditions are talking about the same multi-valued relation). Conditions in subsequent ``filter()`` or ``exclude()`` calls that refer to the same relation may end up @@ -2101,24 +2101,24 @@ Updating multiple objects at once **New in Django development version** Sometimes you want to set a field to a particular value for all the objects in -a queryset. You can do this with the ``update()`` method. For example:: +a ``QuerySet``. You can do this with the ``update()`` method. For example:: - # Update all the headlings to the same value. - Entry.objects.all().update(headline='Everything is the same') + # Update all the headlines with pub_date in 2007. + Entry.objects.filter(pub_date__year=2007).update(headline='Everything is the same') You can only set non-relation fields and ``ForeignKey`` fields using this -method and the value you set the field to must be a normal Python value (you -can't set a field to be equal to some other field at the moment). +method, and the value you set the field to must be a hard-coded Python value +(i.e., you can't set a field to be equal to some other field at the moment). To update ``ForeignKey`` fields, set the new value to be the new model instance you want to point to. Example:: b = Blog.objects.get(pk=1) - # Make all entries belong to this blog. + # Change every Entry so that it belongs to this Blog. Entry.objects.all().update(blog=b) The ``update()`` method is applied instantly and doesn't return anything -(similar to ``delete()``). The only restriction on the queryset that is +(similar to ``delete()``). The only restriction on the ``QuerySet`` that is updated is that it can only access one database table, the model's main table. So don't try to filter based on related fields or anything like that; it won't work. |
