class Ticket(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
booked_at = models.DateTimeField(default=timezone.now)
bought = models.BooleanField(default=False)
I would like to group tickets by booked day, and then again group each day's ticket list by ticket's user (admin / customer) i.e., user is_admin or not, finally to get list of ticket or ticket's id.
[
{
'day': datetime.datetime(2018, 5, 6, 0, 0, ...),
'booked_by_admin': [1, 2, 5],
'booked_by_customer': [3, 4]
},
{
'day': datetime.datetime(2018, 5, 7, 0, 0, ...),
'booked_by_admin': [11, 12, 16],
'booked_by_customer': [10, 13, 14, 15]
}
]
I could group tickets by day this way,
Ticket.objects.filter(bought=True).annotate(day=TruncDay('booked_at')).values('day').annotate(c=Count('id')).order_by()
But I cannot figure out how to again group it by admin user and non admin user to get list of ticket objects. Could you help me please.