django - 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(...)
我希望创建一个专辑序列化程序:
- 在 GET 上显示艺术家信息
- 可以在 POST 上使用 pk 链接艺术家
我可以使用 pk 使用以下序列化程序进行 POST,但我不知道如何在同一个序列化程序中获取艺术家信息:
class AlbumSerializer(serializers.ModelSerializer):
class Meta:
model = Album
fields = '__all__'
谢谢。
解决方案
您可以覆盖您AlbumSerializer
的to_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__'
推荐阅读
- database - 如何在elasticsearch上搜索某个字段的值而不是唯一的结果
- php - 根据设置的模板名称获取 PHP 文件的内容
- python - PIL图像到numpy数组的Python转换非常慢
- python - Python:使用 .item() 打印字典时出错
- laravel - 获取queryScope结果槽whereHas使用haversine公式计算距离的方法
- sql - 匹配具有不同字符长度的 2 个字段,substr?填充?
- php - 如何在同一日期下显示多个帖子而不在循环中重复同一日期(php)
- api - GraphQL 字段解析器需要上下文信息
- php - 如何修复数组到字符串转换 Bootstrap PHP?
- c# - 回调与对象引用