Serialization 如何在django中更改序列化程序中的字段名

Serialization 如何在django中更改序列化程序中的字段名,serialization,django-rest-framework,Serialization,Django Rest Framework,我有一个字段国家/地区id和country_uname,我想更改Django rest框架中两个字段的名称 现在就写,我得到了这些数据 { "data": [ { "country_id": 1, "country_name": "Afghanistan" }, { "country_id": 2, "country_name": "Aland Islands" } ] } { "data"

我有一个字段国家/地区id和country_uname,我想更改Django rest框架中两个字段的名称

现在就写,我得到了这些数据

{
  "data": [
    {
      "country_id": 1,
      "country_name": "Afghanistan"
    },
    {
      "country_id": 2,
      "country_name": "Aland Islands"
    } 
  ]
}
 {
      "data": [
        {
          "id": 1,
          "name": "Afghanistan"
        },
        {
          "id": 2,
          "name": "Aland Islands"
        }
      ]
    }
我在serializers.py文件中进行了更改,但不适用于我

序列化程序.py

class CountrySerializer(serializers.ModelSerializer):
    name = serializers.SerializerMethodField('country_name')
    class Meta:
        model = Country
        fields = ('country_id', 'name')
模型中

class Country(models.Model):
    country_id = models.AutoField(primary_key = True)
    country_name = models.CharField(max_length = 128)

    class Meta:
        db_table = 'countries'
我想要这些数据

{
  "data": [
    {
      "country_id": 1,
      "country_name": "Afghanistan"
    },
    {
      "country_id": 2,
      "country_name": "Aland Islands"
    } 
  ]
}
 {
      "data": [
        {
          "id": 1,
          "name": "Afghanistan"
        },
        {
          "id": 2,
          "name": "Aland Islands"
        }
      ]
    }
获取此错误:AttributeError at/v1/location/Country/
“CountrySerializer”对象没有属性“country\u name”

您必须在“serializers.py”文件中进行更改

然后你会得到这样的数据

 {
      "data": [
        {
          "id": 1,
          "name": "Afghanistan"
        },
        {
          "id": 2,
          "name": "Aland Islands"
        }
      ]
    }

实际的模型字段是否需要出现在字段元属性中,或者出现在序列化程序中声明的字段中?相关文档在哪里?对于可写序列化程序,验证的\u数据是否包含名称和id,或国家/地区\u名称和国家/地区id?