Add some admin useful informations and SQL optimisation

This commit is contained in:
loulous27 2025-12-07 23:15:32 +01:00
parent c4278ec85e
commit 9020074df8
3 changed files with 19 additions and 4 deletions

View file

@ -25,6 +25,10 @@ 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 +39,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 +50,16 @@ 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")