from django.contrib.auth.mixins import LoginRequiredMixin from django.views.generic.dates import ArchiveIndexView, YearArchiveView from django.views.generic.detail import DetailView from .models import Gallery, Photo class GalleryDateView(LoginRequiredMixin): queryset = Gallery.objects.filter(is_public=True) date_field = 'date_start' uses_datetime_field = False # Fix related object access allow_empty = True class GalleryArchiveIndexView(GalleryDateView, ArchiveIndexView): pass class GalleryYearArchiveView(GalleryDateView, YearArchiveView): make_object_list = True class PhotoDetailView(LoginRequiredMixin, DetailView): queryset = Photo.objects.filter(is_public=True)