나는 다음과 같은 모델이 내 EventsIndex
템플릿에서장고 | 월별로 그룹화 된 이벤트를 사용자 정의 형식으로 표시 하시겠습니까?
class Event(Page)
# my fields
start_date = models.DateField()
end_date = models.DateField()
class EventsIndex(Page):
# my fields
def get_events(self):
events = Event.objects.all().sort_by("start_date")
return events
그때 옆에 후 월 현재 달, 다음 달을 보여 4 개 탭이를 표시해야하는 "나중에"라는 마지막 탭 월별로 그룹화 개별 Event
의 :
나는 이러한 이벤트가 표시 취득하는 논리를 알아 내려고 노력하고있어. 개별 월 탭에는 이벤트 만 표시되는 반면, '나중에'탭에는 이벤트 월의 제목과 이벤트 자체가 표시되어야합니다. 처음에는 각 탭에 대한 함수를 만드는 방법을 생각했습니다.
def current_month_events(self):
current_month, current_year = datetime.now().month, datetime.now().year
events = Event.objects.filter(start_date__year=current_year,
start_date__month=current_month).order_by("start_date")
return events
# Repeat for all required tabs
그러나 이것은 DRY 원칙을 위반하는 것 같습니다. 이 논리를 처리하는 더 평범한 방법이 있습니까?
Nailed it, thanks @Withnail! 나는 시간 델타 대신에 relativedelta를 사용하는 것과 같은 약간의 변경을해야했다. 그러나 그것은 완벽하게 작동한다. :) – DDiran