updated db queries for performance improvement #9

Merged
tiradoe merged 1 commit from performance-improvements into main 2025-06-30 22:09:11 +00:00
2 changed files with 10 additions and 3 deletions
Showing only changes of commit 6651be3458 - Show all commits

View file

@ -26,19 +26,26 @@ class MovieSerializer(serializers.ModelSerializer):
]
def get_has_been_scheduled(self, obj):
return len(Showing.objects.filter(movie_id=obj.id).all()) > 0
return Showing.objects.filter(movie_id=obj.id).exists()
class MovieListSerializer(serializers.ModelSerializer):
movie_count = serializers.SerializerMethodField()
movies = MovieSerializer(read_only=True, many=True)
serializer_class = MovieSerializer
def get_queryset(self):
return MovieList.objects.prefetch_related(
"movies",
"movies__showing_set"
)
class Meta:
model = MovieList
fields = ["id", "name", "owner", "public", "movies", "movie_count"]
def get_movie_count(self, obj):
return len(obj.movies.all())
return obj.movies.count()
class UserSerializer(serializers.Serializer):

View file

@ -55,7 +55,7 @@ class MovieViewset(viewsets.ModelViewSet):
class MovieListViewset(viewsets.ModelViewSet):
queryset = MovieList.objects.all().order_by("name")
queryset = MovieList.objects.prefetch_related("movies").order_by("name")
authentication_classes = [TokenAuthentication]
permission_classes = [permissions.IsAuthenticated | ReadOnly]