My question is regarding best practices for querying a database in a View using Django.
I want a daily count of reservations for the past 7 days. Is it okay to have something like this? (below)
count_day_1 = len(Reservations.objects.filter(date=TODAY_DATE).filter(is_reserved=True))
count_day_2 = len(Reservations.objects.filter(date=DATE_TODAY_MINUS_1).filter(is_reserved=True))
count_day_3 = len(Reservations.objects.filter(date=DATE_TODAY_MINUS_2).filter(is_reserved=True))
count_day_4 = len(Reservations.objects.filter(date=DATE_TODAY_MINUS_3).filter(is_reserved=True))
count_day_5 = len(Reservations.objects.filter(date=DATE_TODAY_MINUS_4).filter(is_reserved=True))
count_day_6 = len(Reservations.objects.filter(date=DATE_TODAY_MINUS_5).filter(is_reserved=True))
count_day_7 = len(Reservations.objects.filter(date=DATE_TODAY_MINUS_6).filter(is_reserved=True))
Or does having that Reservations.objects.filter() in there 7 times ping the database 7 times?
If the above way isn't recommended, should I set it up something like this instead? (below)
data = Reservations.objects.filter(is_reserved=True)
for item in data:
if item.date == TODAY_DATE:
print(item.date)
if item.date == DATE_TODAY_MINUS_1:
print(item.date)
(...so on and so forth)
Any advice would be great.
Thanks!