Caches é SQL optimisations
This commit is contained in:
parent
213644d0af
commit
f1673da45f
5 changed files with 69 additions and 14 deletions
|
|
@ -20,10 +20,16 @@ from django.views.generic.dates import ArchiveIndexView, YearArchiveView
|
|||
from django.views.generic.detail import DetailView
|
||||
from django.views.generic.edit import DeleteView, FormView
|
||||
from PIL import Image
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
|
||||
|
||||
from .forms import UploadForm
|
||||
from .models import Gallery, Photo, Tag
|
||||
|
||||
# Cette ligne renvoie le modèle d'utilisateur actif (le natif ou le vôtre)
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class GalleryDateView(LoginRequiredMixin):
|
||||
model = Gallery
|
||||
|
|
@ -135,11 +141,11 @@ class GalleryDetailView(LoginRequiredMixin, DetailView):
|
|||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
|
||||
# Non-staff members only see public photos
|
||||
# Non-staff members only see public photos + prefetch all owners informations (Optimisation)
|
||||
if self.request.user.is_staff:
|
||||
context["photos"] = self.object.photos.all()
|
||||
context["photos"] = self.object.photos.all().select_related('owner')
|
||||
else:
|
||||
context["photos"] = self.object.photos.filter(is_public=True)
|
||||
context["photos"] = self.object.photos.filter(is_public=True).select_related('onwer')
|
||||
|
||||
# List owners
|
||||
context["owners"] = []
|
||||
|
|
@ -147,6 +153,8 @@ class GalleryDetailView(LoginRequiredMixin, DetailView):
|
|||
if photo.owner not in context["owners"]:
|
||||
context["owners"].append(photo.owner)
|
||||
|
||||
|
||||
|
||||
# Filter on owner
|
||||
if "owner" in self.kwargs:
|
||||
context["photos"] = context["photos"].filter(owner__id=self.kwargs["owner"])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue