У меня есть модель, которая выглядит примерно так:Serialize QuerySet - Группа по дате
class Deal(models.Model):
sender = models.ForeignKey(settings.AUTH_USER_MODEL)
created_on = models.DateField(auto_now_add=True)
recipient = modes.ForeignKey(settings.AUTH_USER_MODEL)
...
я хотел бы получить ежедневно количество сделок, отправленных или полученных конкретным пользователем в окне три месяца заканчивается сегодня. Чтобы еще более усложнить вещи, я хочу, чтобы набор данных сериализован в формате JSON, так что у меня есть такой вывод:
{
"timestamp_1": count_1,
"timestamp_2": count_2,
...
"timestamp_n": count_n
}
До сих пор я прибыл на запрос, который будет выглядеть примерно так:
# Assume we have a user object called "user"
Deal.objects.filter(Q(sender=user) | Q(recipient=user)).extra({'date_created' : "date(created_on)"}).values('date_created').annotate(created_count=Count('id'))
Все еще расчесывать документацию, но есть ли у кого-нибудь лучший способ справиться с этим?
Чтение об этом сейчас. Возвращает ли метод time_series сопроводительные метки времени (для дня)? Похоже, он возвращает только числа. – parsenz
time_series возвращает список кортежей. Каждый кортеж содержит 2 элемента: объект datetime, который представляет начало сериала и итоговый результат. –