ModelSerializer

data_hamster·2023년 4월 26일
0

학습주제
ModelSerializer

학습내용
지난시간에 배웠던 QuestionSerializer를 좀 더 간단한 형태로 구현해본다.
클래스의 상속을 Serializer -> ModelSerializer로 바꾼다.

ModelSerializer로 바꾸면 각 필드를 하나하나 정의해줄 필요가 없다. create, update 메소드도 만들어줄 필요가 없다.


class QuestionSerializer(serializers.ModelSerializer):
    class Meta:
        model = Question
        fields = ['id', 'question_text', 'pub_date']

fields에 들어가지 않은 필드는 시리얼라이즈에서 제외됨.
상당히 간결해진 것을 알 수 있다. create, update 메소드도 자동으로 생성된다.
장고 쉘에서 클래스를 생성시킨 값을 보면,

특이하게 pub_date가 read_only 설정이 되어있다. 그 전에는 우리가 직접 수동으로 설정해줬었다. 이는 클래스가 pub_date 생성을 auto_now_add로 한걸 인식해서 자동으로 read_only를 걸어주었다.

.is_valid()도 통과하고, serializer.save()를 하면 정상적으로 저장된 것을 확인할 수 있다.

profile
반갑습니다 햄스터 좋아합니다

0개의 댓글