Как получить записи с каждым месяцем в диапазоне дат двух полей?
У меня есть модель учебного года, которая имеет дату начала и окончания.
class StudyYear(models.Model):
date_begin = models.DateField(...)
date_end = models.DateField(...)
Мне нужен Queryset, в котором есть записи для каждого учебного года с месяцем в диапазоне дат (начальная_дата:конечная_дата)
Пример: Для учебного года (09/01/2022:01/02/2023) qs должен содержать записи:
...
(code=9_2022, name='September 2022'),
(code=10_2022, name='November 2022'),
(code=11_2022, name='October 2022'),
(code=12_2022, name='December 2022'),
(code=1_2023, name='January 2023'),
(code=2_2023, name='February 2023'),
...
Честно говоря, я понятия не имею, как решить эту проблему, я очень надеюсь на вашу помощь!
Попробуем следующее:
from django.utils.timezone import now
from dateutil.relativedelta import relativedelta
# Get the First Day of This Month (September 1st 2022)
first_day = now().replace(day=1, month=9)
# Get the last Day of next year
last_day = first_day + relativedelta(months=13)
# Queryset
StudyYear.objects.filter(date_begin__gte=first_day, date_end__lte=last_day)