ModelSerializer 사용하기
우리의 SnippetSerializer 클래스는 Snippet 모델에 있는 많은 정보를 복제하며 사용하고 있습니다.
Django 가 Form 클래스와 ModelForm 클래스를 제공하는 같은 방식으로,
REST FRAMEWORK 은
Serializer 클래스들과 ModelSerializer 클래스들을 가지고 있습니다.
우리의 Serializer 를 ModelSerializer
를 사용하여, 리펙토링 해봅시다.
snippets/serializers.py
파일을 열고, SnippetSerializer
클래스를 아래와 같이 고쳐줍니다.
1 | class SnippetSerializer(serializers.ModelSerializer): |
serializers 가 좋은 점중 하나는, serializer 인스턴스 안에 모든 필드들을 검사할수 있다는 점입니다. 이는, representation 을 프린트 해보면 됩니다. Django shell 을 python manage.py shell
을 실행하여 열고, 아래 코드들을 실행 시켜 보세요.
1 | In [1]: from snippets.serializers import SnippetSerializer |
ModelSerializer 클래스는 특별하고 마법같은 일은 하지 않습니다.
그저 Serializer 클래스들을 줄여주는 숏컷일 뿐이라는것을 기억하는것이 좋습니다.
아래 일들만 살짝 줄여줄뿐, 또다른 특별한 메서드는 아닙니다.
- 자동으로 지정된 필드
create()
그리고update()
메서드의 간단한 기본 구현 가능