【发布时间】:2022-01-01 01:37:54
【问题描述】:
我想在模板中显示未预订约会的日期。出于这个原因,我到目前为止:
# Collect only the dates so that i can find what is not in that range.
example_dates = Appointment.objects.values_list('start_appointment', flat=True)
# Initialize start and end date
start_date = datetime.date.today()
end_date = start_date + datetime.timedelta(days=5)
# Initialize new list that will include records does not exists
not_found_dates = []
# Loop through in date range and if date does not exists
# Create a dict and add it to the list
for n in range(int((end_date - start_date).days)):
new_date = start_date + datetime.timedelta(days=n)
if new_date not in not_found_dates:
not_found_dates.append(new_date)
print(new_date)
# Get original queryset
examples = Appointment.objects.filter(start_appointment__range=(start_date, end_date)).values('start_appointment')
print(examples)
# Convert it to a list
examples = list(examples)
return render(request, 'appointments/add-appointment.html', {'examples': examples, 'not_found_dates': not_found_dates})
当我从循环中打印 new_date 时,我得到:
2021-11-22
2021-11-23
2021-11-24
2021-11-25
2021-11-26
来自examples 的查询返回我在 2021 年 11 月 23 日(2)和 2021 年 11 月 22 日(1)范围内的 db 中有 3 个约会。
是否可以显示未预订的约会日期,即2021-11-24、2021-11-25、2021-11-26。
【问题讨论】:
标签: django list loops datetime django-queryset