【发布时间】:2021-05-25 10:03:18
【问题描述】:
我想将完整的 Artist 模型对象传递给序列化程序,因此我创建了一个新字段 serializers.SerializerMethodField 并在其中传递了 Artist 对象。但我得到了错误。
getattr(): attribute name must be string
class ArtistSerializer(serializers.ModelSerializer):
similar_artists = serializers.SerializerMethodField(Artist.objects.all())
class Meta:
model = Artist
fields = ('id', 'artist_name', 'albums', 'similar_artists')
我想我完全错了。那么有没有办法通过带有手动字段的序列化程序在单个对象中传递所有值或所有艺术家。
我想在序列化器中实现类似的东西。
{
"id": 1,
"albums": [
{
"id": 1,
"album_name": "Fearless (Taylor's Version)"
},
{
"id": 7,
"album_name": "Reputation"
},
{
"id": 8,
"album_name": "1989"
}
],
"artist_name": "Taylor Swift",
"similar_artists": [
{
Artist Object
}
]
},
模特艺术家
class Artist(models.Model):
artist_name = models.CharField(max_length=100)
album = models.CharField(max_length=1000)
def __str__(self):
return self.artist_name
【问题讨论】:
标签: python arrays django object django-rest-framework