PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Django con Postgresql, la colonna deve apparire nella clausola GROUP BY o essere utilizzata in una funzione aggregata

Questo è un bug noto in Django>=1.8 e Django <2.0. È stato corretto in Django 2.0. Ho avuto lo stesso problema e l'ho inserito nella mailing list di django-users.

Quello che è successo è che Django ha eseguito alcune ottimizzazioni, in particolare basate su PostgreSQL. In PostgreSQL, devi solo usare le colonne pk nella clausola GROUP BY, ma questo è solo per le tabelle. (La query viene eseguita più rapidamente se lo fai.) Non puoi avere un PK in una vista in PostgreSQL, motivo per cui è un problema per noi poiché stiamo usando modelli non gestiti accoppiati con viste nel back-end.

Riferimenti: