# Django Rest_Framework(3) 모델 클래스 서열화기 ModelSerializer
ModelSerializer는 일반적인 Serializer와 같지만 다음과 같은 기능을 제공합니다.
모델 클래스 서열화기 정의
예를 들어 BookInfoSerializer를 만듭니다.
class BookInfoSerializer(serializers.ModelSerializer):
""" """
class Meta:
model = BookInfo
fields = '__all__'
>>> from booktest.serializers import BookInfoSerializer
>>> serializer = BookInfoSerializer()
>>> serializer
BookInfoSerializer():
id = IntegerField(label='ID', read_only=True)
btitle = CharField(label=' ', max_length=20)
bpub_date = DateField(allow_null=True, label=' ', required=False)
bread = IntegerField(label=' ', max_value=2147483647, min_value=-2147483648, required=False)
bcomment = IntegerField(label=' ', max_value=2147483647, min_value=-2147483648, required=False)
image = ImageField(allow_null=True, label=' ', max_length=100, required=False)
2. 필드 정보
1. **fields** ,__all__ , , :
class BookInfoSerializer(serializers.ModelSerializer):
""" """
class Meta:
model = BookInfo
fields = ('id', 'btitle', 'bpub_date')
2. **exclude**
class BookInfoSerializer(serializers.ModelSerializer):
""" """
class Meta:
model = BookInfo
exclude = ('image',)
3. ,
class HeroInfoSerializer(serializers.ModelSerializer):
hbook = BookInfoSerializer()
class Meta:
model = HeroInfo
fields = ('id', 'hname', 'hgender', 'hcomment', 'hbook')
4.
**read_only_fields ,
class BookInfoSerializer(serializers.ModelSerializer):
""" """
class Meta:
model = BookInfo
fields = ('id', 'btitle', 'bpub_date', 'bread', 'bcomment')
read_only_fields = ('id', 'bread', 'bcomment')
3. 추가 매개 변수 추가
우리는 extra 를 사용할 수 있다kwargs 매개 변수는 ModelSerializer에 대한 기존 옵션 매개 변수를 추가하거나 수정합니다
class BookInfoSerializer(serializers.ModelSerializer):
""" """
class Meta:
model = BookInfo
fields = ('id', 'btitle', 'bpub_date', 'bread', 'bcomment')
extra_kwargs = {
'bread': {'min_value': 0, 'required': True},
'bcomment': {'min_value': 0, 'required': True},
}
# BookInfoSerializer():
# id = IntegerField(label='ID', read_only=True)
# btitle = CharField(label=' ', max_length=20)
# bpub_date = DateField(allow_null=True, label=' ', required=False)
# bread = IntegerField(label=' ', max_value=2147483647, min_value=0, required=True)
# bcomment = IntegerField(label=' ', max_value=2147483647, min_value=0, required=True)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.