From bc5803112537aa6ff18cd8ee125d8c1c055fbf89 Mon Sep 17 00:00:00 2001 From: loulous27 Date: Sun, 7 Dec 2025 23:20:03 +0100 Subject: [PATCH] Add some admin useful informations and SQL optimisation --- photologue/admin.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/photologue/admin.py b/photologue/admin.py index 272b74c..f7d417e 100644 --- a/photologue/admin.py +++ b/photologue/admin.py @@ -25,6 +25,11 @@ class GalleryAdmin(admin.ModelAdmin): get_tags.short_description = _("tags") + def get_queryset(self, request): + # Cette étape est correcte et essentielle + return super().get_queryset(request).prefetch_related("tags") + + class PhotoAdmin(admin.ModelAdmin): list_display = ( @@ -35,8 +40,9 @@ class PhotoAdmin(admin.ModelAdmin): "view_count", "admin_thumbnail", "get_owner", + "get_galleries" ) - list_filter = ["date_added", "is_public", "owner"] + list_filter = ["date_added", "is_public", "owner","galleries"] search_fields = ["title", "slug", "caption"] list_per_page = 25 prepopulated_fields = {"slug": ("title",)} @@ -45,6 +51,17 @@ class PhotoAdmin(admin.ModelAdmin): def get_owner(self, obj): return obj.owner.username + + + def get_queryset(self, request): + # Précharge les objets 'galleries' en une seule requête supplémentaire + return super().get_queryset(request).prefetch_related("owner",'galleries') + + def get_galleries(self, obj): + return ", ".join([g.title for g in obj.galleries.all()])## get all linked galeries + + get_galleries.short_description = _("Gallery") + get_galleries.admin_order_field = 'galleries__title' get_owner.admin_order_field = "owner" get_owner.short_description = _("owner")