【发布时间】:2021-04-24 15:43:38
【问题描述】:
我需要将一个对象数组添加到另一个结构如下所示的对象中。
这是专辑的当前回复:
[
{
"id": "1",
"name": "Skin",
"artists": [
{
"id": "1",
"name": "Flume",
}
],
"tracks": [
{
"id": "1",
"name": "Take A Chance"
}
]
}
]
我需要将专辑响应中的 tracks 对象转换为:
[
{
"id": "1",
"name": "Skin",
"artists": [
{
"id": "1",
"name": "Flume",
}
],
"tracks": {
"items": [
{
"id": "1",
"name": "Take A Chance"
}
]
}
}
]
编辑:这是我当前的模型、视图和序列化程序:
class Artist(models.Model):
name = models.CharField(max_length=300)
albums = models.ManyToManyField('albums.Album', related_name='artists')
tracks = models.ManyToManyField('tracks.Track', related_name='artists')
class Album(models.Model):
name = models.CharField(max_length=400)
class Track(models.Model):
name = models.CharField(max_length=400)
album = models.ForeignKey('albums.Album', related_name='tracks', on_delete=models.CASCADE)
#views.py
class AlbumAPIView(RetrieveAPIView):
queryset = Album.objects.all()
serializer_class = AlbumsSerializer
lookup_field = 'id'
#serializers.py
class AlbumsSerializer(serializers.ModelSerializer):
artists = ArtistsSerializer(many=True)
tracks = TrackSerializer(many=True)
class Meta:
model = Album
fields = [
'id',
'name',
'artists',
'tracks',
]
class ArtistsSerializer(serializers.ModelSerializer):
class Meta:
model = Artist
fields = [
'id',
'name',
]
class TrackSerializer(serializers.ModelSerializer):
artists = ArtistsSerializer(many=True)
class Meta:
model = Track
fields = [
'id',
'name',
'artists',
]
UPD:添加了序列化程序和视图!
任何帮助将不胜感激。
【问题讨论】:
-
显示创建响应的视图 - DRF 序列化程序/原始响应?
-
@monio 原谅我的无知,暂时无法添加,但现在更新了序列化程序和视图文件!
标签: django django-rest-framework