from django.core.management.base import BaseCommand from django.db.models import Count, Q from parks.models import Park class Command(BaseCommand): help = 'Update total_rides and total_roller_coasters counts for all parks' def handle(self, *args, **options): parks = Park.objects.all() operating_rides = Q(status='OPERATING') updated = 0 for park in parks: # Count total operating rides total_rides = park.rides.filter(operating_rides).count() # Count total operating roller coasters total_coasters = park.rides.filter( operating_rides, category='RC' ).count() # Update park counts Park.objects.filter(id=park.id).update( total_rides=total_rides, total_roller_coasters=total_coasters ) updated += 1 self.stdout.write( self.style.SUCCESS( f'Successfully updated counts for {updated} parks' ) )