PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Django mit Postgresql, Spalte muss in der GROUP BY-Klausel erscheinen oder in einer Aggregatfunktion verwendet werden

Dies ist ein bekannter Fehler in Django>=1.8 und Django <2.0. Es wurde in Django 2.0 behoben. Ich hatte das gleiche Problem und brachte es in der django-users-Mailingliste zur Sprache.

Was passiert ist, ist, dass Django einige Optimierungen durchgeführt hat, insbesondere basierend auf PostgreSQL. In PostgreSQL müssen Sie nur die pk-Spalten in der GROUP BY-Klausel verwenden, aber das gilt nur für Tabellen. (Die Abfrage wird dadurch schneller ausgeführt.) Sie können keinen PK in einer Ansicht in PostgreSQL haben, weshalb dies für uns ein Problem darstellt, da wir nicht verwaltete Modelle verwenden, die mit Ansichten im Backend gekoppelt sind.

Referenzen: