0

如何更改 Django Rest 框架中序列化程序给出的 json 字段响应的名称?

在按照文档进行操作后,我尝试了这个,但是没有用。

from api.models import Countries
from rest_framework import serializers

class CountrySerializer(serializers.Serializer):
    country_geoname_id = serializers.CharField(required=True)
    iso = serializers.CharField(max_length=2L, required=True)
    country_name = serializers.CharField(max_length=64L, required=True)

    def transform_iso(self, obj, value):
        return "country_code"

基本上 JSON 响应如下所示:

{
    "country_geoname_id": 3041565, 
    "iso": "AD", 
    "country_name": "Andorra"
}, 

我正在尝试将字段更改isocountry_code.

4

1 回答 1

3

您可以使用source字段上的属性。

请参阅: http ://django-rest-framework.org/api-guide/fields.html#core-arguments

因此,以您的示例为例,您将执行以下操作:

class CountrySerializer(serializers.Serializer):
    country_geoname_id = serializers.CharField(required=True)
    country_code = serializers.CharField(source='iso', max_length=2L, required=True)
    country_name = serializers.CharField(max_length=64L, required=True)

希望这对您有所帮助。

于 2013-11-11T19:03:47.260 回答