Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed #20561 -- Emphasized that QuerySet.distinct([*fields]) is only …

…supported by Postgres.

Thanks jtiai for the suggestion.
  • Loading branch information...
commit 577b0f91894469872974ad609b4fabca949cdc1b 1 parent b9fcead
@timgraham timgraham authored
Showing with 5 additions and 8 deletions.
  1. +5 −8 docs/ref/models/querysets.txt
View
13 docs/ref/models/querysets.txt
@@ -379,17 +379,14 @@ query spans multiple tables, it's possible to get duplicate results when a
:meth:`values()` together, be careful when ordering by fields not in the
:meth:`values()` call.
-You can pass positional arguments (``*fields``) in order to specify the names
-of fields to which the ``DISTINCT`` should apply. This translates to a
-``SELECT DISTINCT ON`` SQL query. Here's the difference. For a normal
-``distinct()`` call, the database compares *each* field in each row when
+On PostgreSQL only, you can pass positional arguments (``*fields``) in order to
+specify the names of fields to which the ``DISTINCT`` should apply. This
+translates to a ``SELECT DISTINCT ON`` SQL query. Here's the difference. For a
+normal ``distinct()`` call, the database compares *each* field in each row when
determining which rows are distinct. For a ``distinct()`` call with specified
field names, the database will only compare the specified field names.
.. note::
- This ability to specify field names is only available in PostgreSQL.
-
-.. note::
When you specify field names, you *must* provide an ``order_by()`` in the
QuerySet, and the fields in ``order_by()`` must start with the fields in
``distinct()``, in the same order.
@@ -398,7 +395,7 @@ field names, the database will only compare the specified field names.
value in column ``a``. If you don't specify an order, you'll get some
arbitrary row.
-Examples::
+Examples (those after the first will only work on PostgreSQL)::
>>> Author.objects.distinct()
[...]
Please sign in to comment.
Something went wrong with that request. Please try again.