【发布时间】:2021-05-17 18:10:09
【问题描述】:
我的models.py 文件中定义了两个模型:
class Album(models.Model):
album = models.CharField(max_length=100)
band = models.CharField(max_length=100)
class Song(models.Model):
album = models.ForeignKey(Album, on_delete=models.CASCADE)
song = models.CharField(max_length=100)
对于这些,我在serializers.py 文件中将序列化程序定义为:
class AlbumSerializer(serializers.ModelSerializer):
class Meta:
model = Album
fields = "__all__"
class SongSerializer(serializers.ModelSerializer):
album = AlbumSerializer()
class Meta:
model = Song
fields = "__all__"
当我发出请求时,我得到的数据是这样的格式:
[
{
"id": 1,
"album": {
"id": 1,
"album": "Hybrid Theory",
"band": "Linkin Park"
},
"song": "Numb"
},
{
"id": 2,
"album": {
"id": 1,
"album": "Hybrid Theory",
"band": "Linkin Park"
},
"song": "In the End"
}
]
如何从歌曲序列化器中删除专辑名称中的嵌套?我想要这样的数据:
[
{
"id": 1,
"album_id": 1,
"album": "Hybrid Theory",
"band": "Linkin Park"
"song": "Numb"
},
{
"id": 2,
"album_id": 1,
"album": "Hybrid Theory",
"band": "Linkin Park"
"song": "In the End"
}
]
【问题讨论】:
-
您可以覆盖
to_representation()以获得您想要显示的数据的不同行为。
标签: django django-rest-framework