from django.shortcuts import get_object_or_404, redirect, render from django.views.generic import DetailView, ListView, TemplateView from .models import Album, Photo # Create your views here. class Main(TemplateView): template_name = "gallery/main.html" class AlbumsList(ListView): model = Album template_name = 'gallery/album_list.html' queryset = Album.objects.filter(is_public=True) ordering = ['-album_date'] class AlbumDetail(DetailView): model = Album template_name = 'gallery/album_detail.html' def get_object(self, queryset=None): return get_object_or_404(Album, slug=self.kwargs.get('album_slug')) def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['photos'] = self.object.photos.all() return context class PhotoDetail(DetailView): model = Photo template_name = 'gallery/photo_detail.html' def get_object(self, queryset=None): return get_object_or_404(Photo, slug=self.kwargs.get('photo_slug'))