【问题标题】:Django Rest Framework, default serializer for foreign key fieldDjango Rest Framework,外键字段的默认序列化程序
【发布时间】:2016-10-15 14:35:15
【问题描述】:

假设用户有一个地址作为外键

典型的 PrimaryKeyRelatedField 将通过 id 表示外键:

{

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

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

{
   id: 3,
   first_name: eugene,
   last_name: kim,
   address: {
     id: 9     # difference here,
   }
}   

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    试试这个

    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}
    

    更新

    class MyModelSerializer(serializers.ModelSerializer)
        serializer_related_field = MyPrimaryKeyRelatedField
    

    然后将PrimaryKeyRelatedField 替换为MyPrimaryKeyRelatedFieldserializers.ModelSerializerMyModelSerializer

    【讨论】:

    • 谢谢。 PrimaryKeyRelatedField 自动用于外键字段。是否可以将 MyPrimaryKeyRelatedField 设置为外键的默认序列化程序字段?
    猜你喜欢
    • 2016-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 2022-08-08
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多