Is there a way to order a nested serializer _set, for example order by pk or time-stamp.
So basically order song_set shown in the json data below from the most recent to the latest object created, in this case by order_by('-timestamp') or order_by('-pk').
Json data
{     "pk": 151,     "album_name": "Name",     "song_set": [          {            pk: 3,            timestamp: '5 seconds'          },          {            pk: 2,            timestamp: '10 seconds'          },          {            pk: 1,            timestamp: '15 seconds'          }     ] }   Model
class Album(models.Model):     album_name     = models.CharField(max_length=100, blank=True)   class Song(models.Model):     album          = models.ForeignKey('album.Album', default=1)     timestamp      = models.DateTimeField(auto_now_add=True, auto_now=False)   Serializer
class SongListSerializer(HyperlinkedModelSerializer):     class Meta:         model = Song         fields = [             'pk',             'timestamp'         ]  class AlbumSerializer(HyperlinkedModelSerializer):     song_set = SongListSerializer(many=True, read_only=True)     class Meta:         model = Album         fields = [             'pk',             'timestamp',             'song_set'         ] 
                You can use SerializerMethodField and write custom method for this.
class AlbumSerializer(HyperlinkedModelSerializer):     song_set = serializers.SerializerMethodField()     class Meta:         model = Album         fields = [             'pk',             'timestamp',             'song_set'         ]      def get_song_set(self, instance):         songs = instance.song_set.all().order_by('-timestamp')         return SongListSerializer(songs, many=True).data 
                        Add ordering meta parameter to your Song model:
class Song(models.Model):     album = models.ForeignKey('album.Album', default=1)     timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)      class Meta:         ordering = ['timestamp', 'pk'] 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With