반응형
모델 속성을 사용하는 ModelSerializer
직렬화하려는 속성 필드를 포함하는 모델을 직렬화하려고합니다.
models.py :
class MyModel(models.Model):
name = models.CharField(max_length=100)
slug = models.AutoSlugField(populate_from='name')
@property
def ext_link(self):
return "/".join([settings.EXT_BASE_URL, self.slug])
serializers.py :
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('name', 'ext_link')
관련 URL을 가져 오려고 할 때 ext_link
속성 에서 serializer 예외 (KeyError)가 발생 합니다.
ext_link
속성을 직렬화하려면 어떻게 해야합니까?
모델 필드가 아니기 때문에 serializer 클래스에 명시 적으로 추가해야합니다.
class MyModelSerializer(serializers.ModelSerializer):
ext_link = serializers.Field()
class Meta:
model = MyModel
fields = ('name', 'ext_link')
등 @Robert Townley
의 코멘트, 버전이 작품 3.8.2
:
class MyModelSerializer(serializers.ModelSerializer):
ext_link = serializers.ReadOnlyField()
class Meta:
model = MyModel
fields = "__all__"
참고 URL : https://stackoverflow.com/questions/17066074/modelserializer-using-model-property
반응형
'programing tip' 카테고리의 다른 글
역할 및 권한이있는 Spring Security (0) | 2020.10.17 |
---|---|
활성 레코드-오늘 이전에 생성 된 레코드 찾기 (0) | 2020.10.17 |
중첩 된 try / except 블록에서 예외를 다시 발생시키는 방법은 무엇입니까? (0) | 2020.10.17 |
Putty : 서버 가져 오기에서 키 오류를 거부했습니다. (0) | 2020.10.17 |
Openstreetmap : 웹 페이지에지도 삽입 (예 : Google지도) (0) | 2020.10.17 |