diff --git a/funkwhale_api/music/views.py b/funkwhale_api/music/views.py index 6622b1e1d8181015e3097bcb062f64874d9aa6e8..8e37c66ab66bd6d5915f7878c98225a15ebf25f6 100644 --- a/funkwhale_api/music/views.py +++ b/funkwhale_api/music/views.py @@ -46,7 +46,12 @@ class ArtistViewSet(SearchMixin, viewsets.ReadOnlyModelViewSet): ordering_fields = ('creation_date',) class AlbumViewSet(SearchMixin, viewsets.ReadOnlyModelViewSet): - queryset = models.Album.objects.all().order_by('-creation_date').prefetch_related('tracks__tags') + queryset = ( + models.Album.objects.all() + .order_by('-creation_date') + .select_related() + .prefetch_related('tracks__tags', + 'tracks__files')) serializer_class = serializers.AlbumSerializerNested permission_classes = [ConditionalAuthentication] search_fields = ['title'] @@ -63,7 +68,13 @@ class TrackViewSet(TagViewSetMixin, SearchMixin, viewsets.ReadOnlyModelViewSet): """ A simple ViewSet for viewing and editing accounts. """ - queryset = models.Track.objects.all().select_related('album__artist', 'artist').prefetch_related('files') + queryset = (models.Track.objects.all() + .select_related() + .select_related('album__artist') + .prefetch_related( + 'tags', + 'files', + 'artist__albums__tracks__tags')) serializer_class = serializers.TrackSerializerNested permission_classes = [ConditionalAuthentication] search_fields = ['title', 'artist__name']