mirror of
https://code.eliotberriot.com/funkwhale/funkwhale.git
synced 2025-10-06 03:50:06 +02:00
Performance optimization on playlisttrack serialization
This commit is contained in:
parent
dd40a4c4d1
commit
16f631af1a
2 changed files with 16 additions and 2 deletions
|
@ -94,6 +94,15 @@ class Playlist(models.Model):
|
|||
]
|
||||
return PlaylistTrack.objects.bulk_create(plts)
|
||||
|
||||
class PlaylistTrackQuerySet(models.QuerySet):
|
||||
def for_nested_serialization(self):
|
||||
return (self.select_related()
|
||||
.select_related('track__album__artist')
|
||||
.prefetch_related(
|
||||
'track__tags',
|
||||
'track__files',
|
||||
'track__artist__albums__tracks__tags'))
|
||||
|
||||
|
||||
class PlaylistTrack(models.Model):
|
||||
track = models.ForeignKey(
|
||||
|
@ -105,6 +114,8 @@ class PlaylistTrack(models.Model):
|
|||
Playlist, related_name='playlist_tracks', on_delete=models.CASCADE)
|
||||
creation_date = models.DateTimeField(default=timezone.now)
|
||||
|
||||
objects = PlaylistTrackQuerySet.as_manager()
|
||||
|
||||
class Meta:
|
||||
ordering = ('-playlist', 'index')
|
||||
unique_together = ('playlist', 'index')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue