默认情况下,DRF使用PrimaryKeyRelatedField呈现外键,并且它表示为单个pk。
class Foo(models.Model):
bar = models.ForeignKey('Bar')
def FooSerializer(serializers.ModelSerializer):
class Meta:
model = Foo
fields = [
'id',
'bar'
]FooSerializer(foo_instance).data看起来就像
{
'id': 3,
'bar': 5,
}我希望它成为
{
'id': 3,
'bar': {
'id': 5
},
}不仅仅是为Foo/Bar,而是为了整个项目
发布于 2019-07-15 04:20:57
也许你可以这样做:
class DictPrimaryKeyRelatedField(PrimaryKeyRelatedField):
def to_representation(self, value):
pk = super(DictPrimaryKeyRelatedField, self).to_representation(value)
return dict(id=pk)然后创建一个ModelSerializer,并覆盖serializer_related_field
class CustomModelSerializer(serializers.ModelSerializer):
serializer_related_field = DictPrimaryKeyRelatedField然后在所有序列化器中使用CustomModelSerializer而不是ModelSerializer。
https://stackoverflow.com/questions/57032965
复制相似问题