ArchiveIndexView: 지정 날짜필드 역순으로 정렬된 목록
YearArchiveView: 지정 year년도의 목록
MonthArchiveView: 지정 Year/month 월의 목록
WeekArchiveView: 지정 Year/week 주의 목록
DayArchiveView : 지정 year/month/day 일의 목록
TodayArchiveView : 오늘 날짜의 목록
DateDetailView : 지정 year/month/day 목록 중에서 특정 pk의 DetailDeteDetailView는 URL에 year/month/day를 쓰고자 할 경우에 유용하다.
allow_future(디폴트: False) - 현재 시간 이후의 Record는 제외한다.
필요 URL 인자: 없음
옵션: model, date_field(정렬 기준 필드), date_list_period(디폴트: "year" )
디폴트 template_name_suffix : "_archive.html"
Context : lastest(QuerySet), date_list(등록된 Record의 년도 목록)#views.py post_archive = ArchiveIndexView.as_view(model=Post, data_field='created_at', paginate_by=10) #urls.py urlpatterns = [ path('archive/', views.post_archive, name='post_archive') ]
필요 URL 인자: Year
옵션: model, date_field(정렬 기준 필드), date_list_period(디폴트: "month" )
디폴트 template_name_suffix : "_archive_year.html"
make_object_list (디폴트: False) - 거짓일 경우 object_list를 비움.
Context : year, previous_year, next_year, date_list(전체 Record의 월 목록), object_list#views.py class PostYearArchiveView(YearArchiveView): model = Post date_field = 'created_at' # make_object_list = False post_year_archive = YearArchiveView.as_view(model=Post, date_field='created_at') #urls.py urlpatterns = [ re_path(r'^archive/<?P<year>\d{4}/$', ...), ]
필요 URL 인자: Year, month, day, pk, slug
#views.py class PostDateDetailView(DateDetailView): model = Post date_field = 'created_at' month_format = '%m' post_year_archive = YearArchiveView.as_view(model=Post, date_field='created_at') #urls.py urlpatterns = [ re_path(r'^archive/(?P<year>\d{4})/(?P<month>\d{1, 2})/(?P<day>\d{1, 2})/?P<pk>\d+/$', ...) ]