For at rette det skal du tilføje order_by()
at forespørge kæde. Dette vil tilsidesætte modellens Meta-standardrækkefølge . Sådan:
Test
.objects
.extra({'hour': 'strftime("%%H", created_on)'})
.order_by() #<------ here
.values('hour')
.annotate(count=Count('id'))
I mit miljø ( Postgres også ):
>>> print ( Material
.objects
.extra({'hour': 'strftime("%%H", data_creacio)'})
.order_by()
.values('hour')
.annotate(count=Count('id'))
.query )
SELECT (strftime("%H", data_creacio)) AS "hour",
COUNT("material_material"."id") AS "count"
FROM "material_material"
GROUP BY (strftime("%H", data_creacio))
Få mere at vide i order_by django docs :
Sidebemærkning :ved hjælp af extra()
kan introducere SQL-injektionssårbarhed
til din kode. Brug dette med forsigtighed og undslip alle parametre, som brugeren kan indføre. Sammenlign med dokumenter :