diff --git a/gallery/views/photo.py b/gallery/views/photo.py index c73f257..f109ed1 100644 --- a/gallery/views/photo.py +++ b/gallery/views/photo.py @@ -18,6 +18,11 @@ class PhotosList(ListView): model = Photo paginate_by = 30 + def get(self, request, *args, **kwargs): + # Aseta järjestys heti pyynnön käsittelyn alussa + self.order = self.request.GET.get('order', 'latest') + return super().get(request, *args, **kwargs) + def get_queryset(self): ordering_options = { 'latest': '-taken_at', @@ -25,9 +30,8 @@ class PhotosList(ListView): 'popular': '-views', 'favorite': '-is_favorite', } - selected_order = self.request.GET.get('order', 'latest') - order = ordering_options.get(selected_order, ordering_options['latest']) - return Photo.objects.filter(album__is_public=True).order_by(order).select_related('album') + order_by = ordering_options.get(self.order, ordering_options['latest']) + return Photo.objects.filter(album__is_public=True).order_by(order_by).select_related('album') def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) @@ -37,11 +41,11 @@ class PhotosList(ListView): canonical_url = build_canonical_url( self.request, reverse('gallery:photos_url'), - params={'page': page_obj.number, 'order': order} + params={'page': page_obj.number, 'order': self.order} ) context.update({ - 'order': self.request.GET.get('order', 'latest'), + 'order': self.order, 'canonical_url': canonical_url, }) return context