mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 12:31:22 -05:00
Refactor park queryset logic: move base queryset to a dedicated module for improved organization and maintainability
This commit is contained in:
14
parks/querysets.py
Normal file
14
parks/querysets.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from django.db.models import QuerySet, Count, Q
|
||||
from .models import Park
|
||||
|
||||
def get_base_park_queryset() -> QuerySet[Park]:
|
||||
"""Get base queryset with all needed annotations and prefetches"""
|
||||
return (
|
||||
Park.objects.select_related('owner')
|
||||
.prefetch_related('location', 'photos', 'rides')
|
||||
.annotate(
|
||||
current_ride_count=Count('rides', distinct=True),
|
||||
current_coaster_count=Count('rides', filter=Q(rides__category="RC"), distinct=True)
|
||||
)
|
||||
.order_by('name')
|
||||
)
|
||||
Reference in New Issue
Block a user