0

Django Rest Framework からシリアライザーによって与えられた 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"
}, 

そして、フィールドisoをに変更しようとしていますcountry_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 に答える