Jest to znany błąd w Django>=1.8 i Django <2.0. Zostało to naprawione w Django 2.0. Miałem ten sam problem i zgłosiłem go na liście dyskusyjnej django-users.
Stało się tak, że Django przeprowadziło kilka optymalizacji, zwłaszcza w oparciu o PostgreSQL. W PostgreSQL wystarczy użyć kolumn pk w klauzuli GROUP BY, ale dotyczy to tylko tabel. (Jeśli to zrobisz, zapytanie działa szybciej.) Nie możesz mieć PK w widoku w PostgreSQL, dlatego jest to dla nas problem, ponieważ używamy modeli niezarządzanych połączonych z widokami w backendzie.
Referencje:
- https://github.com/django/django/commit/daf2bd0022c22bc2bfc53c>
- https://groups.google.com/ forum/#!topic/django-developers/lx3ZSq-W9X4
- https://groups.google.com/ d/msg/django-developers/lx3ZSq-W9X4/yh4I2CsoBwAJ
- https://code.djangoproject.com/ticket/28107