
django 에서 serialize 를 해주는 객체
일반적으로 생각하는 그 serialize 맞습니다.
같다고 보여집니다.
serialize 하는 객체이죠.
drf 에서 쓰입니다.
serializer는 일반적인 데이터 직렬화에 사용되며, 모델에 독립적.
결국 스스로 모든 속성을 정의해야 한다는 이야기입니다.
from rest_framework import serializers
class ExampleSerializer(serializers.Serializer):
name = serializers.CharField(max_length=100)
description = serializers.CharField(max_length=1000)
created_at = serializers.DateTimeField()
model의 직렬화에 사용되며, 모델에 의존적.
모델의 속성을 같이 사용할 수 있다는 이야기입니다.
from rest_framework import serializers
from myapp.models import MyModel
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = '__all__' # 모델의 모든 필드를 자동으로 포함
# 또는 특정 필드만 선택할 수도 있습니다.
# fields = ['name', 'description']
또한, 모델 인스턴스를 쉽게 생성하고 업데이트할 수 있는 메서드(create, update)가 자동으로 제공됩니다.
이로 인해 새로운 객체를 생성하거나 기존 객체를 수정하는 로직을 간단하게 구현할 수 있습니다.
Serializer는 일반적인 데이터 직렬화에 사용되며, 모델에 독립적.
ModelSerializer는 특정 Django 모델과 연결되어 있으며, 해당 모델의 필드를 기반으로 자동으로 직렬화.
ModelSerializer는 코드 중복을 줄이고 자동화된 기능을 제공하여 더 간결한 코드 작성을 도와줍니다.
적어도 모델 속성을 다시 선언할 필요가 없습니다.
당연히 직접 많은것들을 할 수 있는 serializer 가 더 많은 유연함을 제공. 모델에 관계 없이 직렬화 가능.
하지만 modelserializer 도 못하는건 아닙니다.