django restframework serializer 사용자 정의 필드 추가

1406 단어 django
django restframework serializer를 사용하여 django에서 정의한 모델을 서열화할 때, 때때로 우리는serializer에 모델에 없는 필드를 추가해야 한다.이 목적을 실현하는 두 가지 방법이 있다.가령 현재 Animal 모형이 하나 있는데, 그중에name, type,country 필드가 있고,country는 외부 키입니다.Animal을 서열화할 때, 외부 키 country의area 정보를 추가해야 합니다.방법은 데이터베이스를 수정하면 모델을 이용하면 설명이 많지 않다. 주로 두 번째는django의 모델을 수정하지 않고 SerializerMethodField(method name=None) 필드를 직접 사용한다.
class AnimalSerializer(serializers.ModelSerializer):
    country_area = serializers.SerializerMethodField()

    class Meta:
        model = Animal
        fields = ('id', 'name', 'type','country','country_area')

    def get_country_area(self, obj):
        return obj.country.area

SerializerMethodFiel은read-only 필드입니다. method 을 지정하지 않으면name의 경우 기본값은 get 입니다.field_ModelSerializer를 사용하고 필드를 지정할 때 이 때 정의된 필드를 포함합니다

좋은 웹페이지 즐겨찾기