我有一个学习年模型,有一个开始和结束日期。
class StudyYear(models.Model):
date_begin = models.DateField(...)
date_end = models.DateField(...)我需要一个问题集,其中记录了每个学习年度的一个月的日期范围(start_date:end_date)
例如:在学习年(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'),
...老实说,我不知道如何解决这个问题,我真的希望你的帮助!
UPD:我已经有了Queryset和所需的studt年,例如,为了简单起见,它包含一条记录:
Queryset(StudyYear{id=1, date_begin='09/01/2022', date_end='02/01/2023'})我需要得到这样的记录:
Queryset([
StudyYear{id=1, date_begin='09/01/2022', date_end='02/01/2023', code='9_2022', name='September 2022'}
StudyYear{id=1, date_begin='09/01/2022', date_end='02/01/2023', code='10_2022', name='October 2022'}
StudyYear{id=1, date_begin='09/01/2022', date_end='02/01/2023', code='11_2022', name='November 2022'}
StudyYear{id=1, date_begin='09/01/2022', date_end='02/01/2023', code='12_2022', name='December 2022'}
StudyYear{id=1, date_begin='09/01/2022', date_end='02/01/2023', code='1_2023', name='January 2023'}
StudyYear{id=1, date_begin='09/01/2022', date_end='02/01/2023', code='2_2023', name='February 2023'}
])发布于 2022-12-01 14:42:42
让我们试试这个:
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)https://stackoverflow.com/questions/74641477
复制相似问题