From 577b0f91894469872974ad609b4fabca949cdc1b Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Fri, 5 Jul 2013 07:20:05 -0400 Subject: [PATCH] Fixed #20561 -- Emphasized that QuerySet.distinct([*fields]) is only supported by Postgres. Thanks jtiai for the suggestion. --- docs/ref/models/querysets.txt | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 8bbf20802c8..6e5e5c93add 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -379,16 +379,13 @@ 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 @@ -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() [...]