Django запрос с TruncHour для нескольких продуктов с последней суммой каждой группы. Как это сделать?
Сценарий следующий: Цена в базе данных товаров обновляется каждый час. Люди могут добавить продукт в список желаний. На странице списка пожеланий есть график. Он показывает изменения цены за последние 24 часа. Я хочу показать ежечасное изменение цены всех продуктов из списка желаний за последние 24 часа.
Я пытаюсь, но не могу выполнить запрос. То, что я пытаюсь сделать, приведено ниже:
now = datetime.datetime.now()
last_day = now - datetime.timedelta(hours=23)
x = (
FloorPrice.objects.filter(
product__in=vault_products_ids, creation_time__gte=last_day
)
.annotate(hour=TruncHour("creation_time"))
.values("hour", "floor_price")
)
Предположим, я добавляю в список желаний 4 продукта.
Теперь я хочу, чтобы каждый час 4 продукта суммировались с последней записью этого часа (каждый час каждый продукт имеет несколько минимальных цен, поэтому нам нужно выбрать последнюю запись каждого продукта в этот час).