Мне нужно выяснить средний возраст предметов (сгруппированных по различным критериям, но, похоже, это не проблема). Однако я не могу найти, как эффективно создать агрегацию через DateTimeField, используя Django (поверх MySQL).
Чистый Item.objects.all.aggregate(Avg('created'))
, кажется, дает абсолютно фиктивные значения (например, 20081988007238.133) и с использованием Item.objects.all.extra(...)
Я не нашел способа агрегирования.
Конечно, я могу вручную создать SQL-запрос (что-то вроде SELECT AVG(UNIX_TIMESTAMP(created)) FROM items_item
), но я бы предпочел не использовать в приложении специальный код MySQL.
Только для справки, образец модели, которую я использую для тестирования:
class Item(models.Model):
name = models.CharField(max_length = 255)
created = models.DateTimeField()