class SongsSerializer(serializers.ModelSerializer):
artist_name = Artist.objects.name
genre_name = Genre.objects.name
class Meta:
model = Song
fields = [
'pk',
'album',
'art',
'title',
'song',
'artist',
'slug',
'genre',
]
read_only_fields = ['id']
序列化程序.py
所以有3种类型的模型类,每种类型都有一些外键关系
class Song(models.Model):
album = models.ForeignKey(Album,on_delete=models.CASCADE)
title = models.CharField(max_length=250)
song = models.FileField(upload_to='songs')
slug = models.SlugField(max_length=250,default='')
genre = models.ForeignKey(Genre,on_delete=models.CASCADE)
artist = models.ForeignKey(Artist,on_delete=models.CASCADE)
API的JSON响应为:
{pk: 1, album: 1, art: "http://localhost:8000/media/art_music/pp_PAgznjI.jpg", title: "Test", song: "http://localhost:8000/media/songs/Daaru_Band_-_Mankirt_Aulakh_DJJOhAL.Com_CtS7TAv.mp3", …}
它应该显示专辑名称、艺术家和流派,而不是将艺术家和流派显示为1
只需对ForeignKey使用序列化程序,它们也需要序列化。如果您忘记了只有
ForeignKey
的id
将被序列化相关问题 更多 >
编程相关推荐