इसे ठीक करने के लिए, order_by()
संलग्न करें क्वेरी श्रृंखला के लिए। यह मॉडल मेटा डिफ़ॉल्ट ऑर्डरिंग को ओवरराइड कर देगा . इस तरह:
Test
.objects
.extra({'hour': 'strftime("%%H", created_on)'})
.order_by() #<------ here
.values('hour')
.annotate(count=Count('id'))
मेरे परिवेश में (पोस्टग्रेज भी):
>>> 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))
order_by django डॉक्स में और जानें :
साइड नोट :extra()
का उपयोग करना SQL इंजेक्शन भेद्यता
पेश कर सकता है आपके कोड के लिए। सावधानी के साथ इसका उपयोग करें और उपयोगकर्ता द्वारा पेश किए जा सकने वाले किसी भी पैरामीटर से बचें। दस्तावेज़ों से तुलना करेंए> :