Django: Группировка по дате (день, месяц, год)

У меня есть простая модель вроде этой:

class Order(models.Model):
    created = model.DateTimeField(auto_now_add=True)
    total = models.IntegerField() # monetary value

И я хочу вывести разбивку по месяцам:

  • Сколько продаж было за месяц ( COUNT )
  • Комбинированное значение ( SUM )

Я не уверен, как это лучше всего атаковать. Я видел несколько довольно пугающих запросов с дополнительным выбором, но мой простой разум подсказывает мне, что мне может быть лучше просто перебирать числа, начиная с произвольного года / месяца начала и считая до тех пор, пока я не дойду до текущего месяца, выбрасывая простые фильтрация запросов за этот месяц. Больше работы с базами данных - меньше стресса разработчика!

Что для вас наиболее важно? Есть ли хороший способ вернуть быструю таблицу данных? Или мой грязный метод, вероятно, лучшая идея?

Я использую Django 1.3. Не уверен, что недавно они добавили более удобный способ для GROUP_BY .

78
задан ayhan 5 November 2017 в 18:26
поделиться