mirror of
https://github.com/daniviga/django-ram.git
synced 2026-02-04 10:00:40 +01:00
Implement query optimization
This commit is contained in:
@@ -98,6 +98,13 @@ class BookAdmin(SortableAdminBase, admin.ModelAdmin):
|
||||
search_fields = ("title", "publisher__name", "authors__last_name")
|
||||
list_filter = ("publisher__name", "authors", "published")
|
||||
|
||||
def get_queryset(self, request):
|
||||
"""Optimize queryset with select_related and prefetch_related."""
|
||||
qs = super().get_queryset(request)
|
||||
return qs.select_related('publisher', 'shop').prefetch_related(
|
||||
'authors', 'tags', 'image', 'toc'
|
||||
)
|
||||
|
||||
fieldsets = (
|
||||
(
|
||||
None,
|
||||
@@ -266,6 +273,13 @@ class CatalogAdmin(SortableAdminBase, admin.ModelAdmin):
|
||||
"scales__scale",
|
||||
)
|
||||
|
||||
def get_queryset(self, request):
|
||||
"""Optimize queryset with select_related and prefetch_related."""
|
||||
qs = super().get_queryset(request)
|
||||
return qs.select_related('manufacturer', 'shop').prefetch_related(
|
||||
'scales', 'tags', 'image'
|
||||
)
|
||||
|
||||
fieldsets = (
|
||||
(
|
||||
None,
|
||||
@@ -490,6 +504,11 @@ class MagazineAdmin(SortableAdminBase, admin.ModelAdmin):
|
||||
"publisher__name",
|
||||
)
|
||||
|
||||
def get_queryset(self, request):
|
||||
"""Optimize queryset with select_related and prefetch_related."""
|
||||
qs = super().get_queryset(request)
|
||||
return qs.select_related('publisher').prefetch_related('tags')
|
||||
|
||||
fieldsets = (
|
||||
(
|
||||
None,
|
||||
|
||||
Reference in New Issue
Block a user