向序列化器添加额外字段

问题描述 投票:0回答:2

我需要向序列化器添加一个额外的字段。我有下面的 django 序列化程序

{
  "count": 2,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 8363,
      "name": "test10",
      "description": ""
    },
    {
      "id": 8360,
      "name": "check",
      "description": "edew"
    }
  ]
}

我需要添加一个字段,例如,我们将其称为

new_field
。 我们怎样才能使这成为可能?我期待的结构如下。

{
  "count": 2,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 8363,
      "name": "test10",
      "description": ""
    },
    {
      "id": 8360,
      "name": "check",
      "description": "edew"
    }
  ],
  "new_field": "New Field Value"
}
django django-models django-rest-framework django-views django-serializer
2个回答
0
投票

我可以假设您使用 ModelSerializer,因此您的代码如下所示:

class MySerializer(ModelSerializer):
    class Meta:
        model = MyModel
        fields = '__all__'

要添加新字段,您应该执行以下操作:

class MySerializer(ModelSerializer):
    new_field = serializers.CharField()
    class Meta:
        model = MyModel
        fields = ['count', 'next', ... , 'new_field]

0
投票
class MySerializer(ModelSerializer):
    new_field = serializers.SerializerMethodField()
    class Meta:
        model = MyModel
        fields = '__all__'

    def get_new_field(self,obj):
        ...codes 
        return new_field

这是添加 new_field 的方法

© www.soinside.com 2019 - 2024. All rights reserved.