Skip to content
Snippets Groups Projects
Commit f1d0a264 authored by Eliot Berriot's avatar Eliot Berriot
Browse files

Reduced number of query in album / tracks / artists api views

parent c6b66ab1
Branches
No related tags found
No related merge requests found
...@@ -46,7 +46,12 @@ class ArtistViewSet(SearchMixin, viewsets.ReadOnlyModelViewSet): ...@@ -46,7 +46,12 @@ class ArtistViewSet(SearchMixin, viewsets.ReadOnlyModelViewSet):
ordering_fields = ('creation_date',) ordering_fields = ('creation_date',)
class AlbumViewSet(SearchMixin, viewsets.ReadOnlyModelViewSet): 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 serializer_class = serializers.AlbumSerializerNested
permission_classes = [ConditionalAuthentication] permission_classes = [ConditionalAuthentication]
search_fields = ['title'] search_fields = ['title']
...@@ -63,7 +68,13 @@ class TrackViewSet(TagViewSetMixin, SearchMixin, viewsets.ReadOnlyModelViewSet): ...@@ -63,7 +68,13 @@ class TrackViewSet(TagViewSetMixin, SearchMixin, viewsets.ReadOnlyModelViewSet):
""" """
A simple ViewSet for viewing and editing accounts. 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 serializer_class = serializers.TrackSerializerNested
permission_classes = [ConditionalAuthentication] permission_classes = [ConditionalAuthentication]
search_fields = ['title', 'artist__name'] search_fields = ['title', 'artist__name']
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment