首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Rest框架,外键字段的默认序列化程序

Django Rest框架,外键字段的默认序列化程序
EN

Stack Overflow用户
提问于 2016-10-15 14:35:15
回答 1查看 1.3K关注 0票数 0

假设用户的地址是外键。

一个典型的PrimaryKeyRelatedField将用id表示外键:

代码语言:javascript
复制
{

   id: 3,
   first_name: eugene,
   last_name: kim,
   address: 9  # here 9 is address's id
}

我想更改已更改的外键字段的默认表示形式,如下例所示。(希望没有我为每个外键字段定义序列化程序)

代码语言:javascript
复制
{
   id: 3,
   first_name: eugene,
   last_name: kim,
   address: {
     id: 9     # difference here,
   }
}   
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-15 14:55:05

尝尝这个

代码语言:javascript
复制
class MyPrimaryKeyRelatedField(PrimaryKeyRelatedField)

    def to_representation(self, value):
        if self.pk_field is not None:
            return self.pk_field.to_representation(value.pk)
        return {"id": value.pk}

更新

代码语言:javascript
复制
class MyModelSerializer(serializers.ModelSerializer)
    serializer_related_field = MyPrimaryKeyRelatedField

然后将PrimaryKeyRelatedField替换为MyPrimaryKeyRelatedField,将serializers.ModelSerializer替换为MyModelSerializer

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40060332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档