如何将对象列表序列化为主键的项目列表

jdi*_*zio 0 django django-rest-framework

使用 django-rest-framework,如何将一对多关系的许多元素序列化为这些项目的一个字段中的简单值列表?例如在

class Album(models.Model):
    album_name = models.CharField(max_length=100)
    artist = models.CharField(max_length=100)

class Track(models.Model):
    album = models.ForeignKey(Album, related_name='tracks')
    order = models.IntegerField()
    title = models.CharField(max_length=100)
    duration = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

我想得到

{
    'album_name': 'Things We Lost In The Fire',
    'artist': 'Low',
    'tracks': [15, 12, 17, 23]
}
Run Code Online (Sandbox Code Playgroud)

JPG*_*JPG 5

用于PrimaryKeyRelatedField(...)

from rest_framework import serializers

class AlbumSerializer(serializers.ModelSerializer):
    tracks = serializers.PrimaryKeyRelatedField(many=True, read_only=True)

    class Meta:
        fields = '__all__'
        model = Album
Run Code Online (Sandbox Code Playgroud)