我在我的一個django視圖中有一個日曆。我試圖返回一個包含開始日期和結束日期之間的日期列表的字典。返回開始日期和結束日期之間的所有日期的字典
目前,我只能返回開始日期或結束日期列表。我需要這些以及其間的所有日子成爲詞典的一部分。
class HolidayCalendar(HTMLCalendar):
def __init__(self, holiday):
super(HolidayCalendar, self).__init__()
self.holiday = self.holiday_days(holiday)
#some formatting
def holiday_days(self, holiday):
#don't actually know how this works....
field = lambda holiday: holiday.start_date.day
# field = lambda holiday: holiday.end_date.day
return dict(
[(day, list(items)) for day, items in groupby(holiday, field)]
)
說實話,我不完全理解這在所有... 這是調用這個觀點:
def holiday(request):
#some code
date_today = datetime.now()
year = date_today.year
month = date_today.month
my_holidays = Holiday.objects.order_by('start_date').filter(
Q(start_date__year=year, start_date__month=month) | Q(end_date__year=year, end_date__month=month)
)
cal = HolidayCalendar(my_holidays).formatmonth(year, month)
#form stuff
context = {
"holidayform": holidayform,
"calendar": mark_safe(cal),
}
return render(request, "tande/calendar.html", context)
謝謝!
是的,我可以看到這是如何工作,這是有用的。但是,我並沒有設法將這樣的東西與我的代碼整合在一起。因爲我不能訪問start_date和end_date,因爲它不是一個請求...所以我只是得到'Not in queryset'或'Name not defined'錯誤 –
你有'field = lambda holiday:holiday.start_date.day'所以看起來'holiday.start_date'是一個'datetime'對象,似乎也有一個'holiday.end_date',我認爲它是另一個'datetime'。 – yorodm
他們都是我假期模型中的日期字段。它們用於假日視圖來過濾出現的情況,如果這有意義,我希望假期在日曆上顯示start_date以end_date –