首页 > 解决方案 > Django REST Framework 使用外键序列化模型

问题描述

简单的问题:

我有下一个模型:

class Artist(models.Model):
    name = models.CharField(...)
    surname = models.CharField(...)
    age = models.IntegerField(...)

clas Album(models.Model):
    artist = models.ForeignKey(Artist, ...)
    title = models.CharField(...)

我希望创建一个专辑序列化程序:

我可以使用 pk 使用以下序列化程序进行 POST,但我不知道如何在同一个序列化程序中获取艺术家信息:

class AlbumSerializer(serializers.ModelSerializer):
    class Meta:
        model = Album
        fields = '__all__'

谢谢。

标签: djangodjango-rest-framework

解决方案


您可以覆盖您AlbumSerializerto_representation方法

class AlbumSerializer(serializers.ModelSerializer):

    def to_representation(self, obj):
        data = super().to_representation(obj)
        data['artist'] = ArtistSerializer(obj.artist).data
        return data

    class Meta:
        model = Album
        fields = '__all__'

推荐阅读