mirror of
https://github.com/daniviga/django-ram.git
synced 2026-02-04 01:50:39 +01:00
Implement query optimization
This commit is contained in:
@@ -59,6 +59,13 @@ class ConsistAdmin(SortableAdminBase, admin.ModelAdmin):
|
||||
search_fields = ("identifier",) + list_filter
|
||||
save_as = True
|
||||
|
||||
def get_queryset(self, request):
|
||||
"""Optimize queryset with select_related and prefetch_related."""
|
||||
qs = super().get_queryset(request)
|
||||
return qs.select_related(
|
||||
'company', 'scale'
|
||||
).prefetch_related('tags', 'consist_item')
|
||||
|
||||
@admin.display(description="Country")
|
||||
def country_flag(self, obj):
|
||||
return format_html(
|
||||
|
||||
@@ -8,6 +8,7 @@ from django.core.exceptions import ValidationError
|
||||
|
||||
from ram.models import BaseModel
|
||||
from ram.utils import DeduplicatedStorage
|
||||
from ram.managers import ConsistManager
|
||||
from metadata.models import Company, Scale, Tag
|
||||
from roster.models import RollingStock
|
||||
|
||||
@@ -35,6 +36,8 @@ class Consist(BaseModel):
|
||||
blank=True,
|
||||
)
|
||||
|
||||
objects = ConsistManager()
|
||||
|
||||
def __str__(self):
|
||||
return "{0} {1}".format(self.company, self.identifier)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user