如何更改Django Rest Framework中序列化程序给出的json字段响应的名称?
跟随documentation我尝试了这个之后,但它没有奏效。
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"
},
我正在尝试将字段iso
更改为country_code
。
答案 0 :(得分:2)
您可以在该字段上使用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)
希望这会对你有所帮助。