django 서열화 사용
1 기본 사용
1) 먼저 도서 대상을 조회한다
from booktest.models import BookInfo
book = BookInfo.objects.get(id=2)
2) 빌드 서열화기 객체
from booktest.serializers import BookInfoSerializer
serializer = BookInfoSerializer(book)
3) 시리얼화된 데이터 가져오기
데이터 속성을 통해 서열화된 데이터를 얻을 수 있습니다
serializer.data
4) 여러 데이터를 포함하는 쿼리 세트QuerySet을 서열화하려면 many=True 매개 변수를 추가하여 설명을 보충할 수 있습니다
book_qs = BookInfo.objects.all()
serializer = BookInfoSerializer(book_qs, many=True)
serializer.data
2 연결 객체 내포 시리얼화
연관 필드의 경우 다음 방법을 사용할 수 있습니다.
1) PrimaryKeyRelatedField
hbook = serializers.PrimaryKeyRelatedField(label=' ', read_only=True)
hbook = serializers.PrimaryKeyRelatedField(label=' ', queryset=BookInfo.objects.all())
필드를 지정할 때 read 를 포함해야 합니다.only=True 또는 queryset 매개변수:
이 필드는 연관된 객체의 문자열 표현으로 시리얼화됩니다( str 메서드의 반환값).
hbook = serializers.StringRelatedField(label=' ')
3)HyperlinkedRelatedField
이 필드는 관련 대상 데이터를 가져오는 인터페이스 링크로 서열화됩니다
hbook = serializers.HyperlinkedRelatedField(label=' ', read_only=True, view_name='books-detail')
4)SlugRelatedField
이 필드는 연관된 객체의 지정된 필드 데이터로 시리얼화됩니다.
hbook = serializers.SlugRelatedField(label=' ', read_only=True, slug_field='bpub_date')
slug_field는 관련 대상을 사용하는 필드를 가리킨다
5) 연관된 객체의 시리얼을 사용합니다.
hbook = BookInfoSerializer()
6) 다시 쓰기 torepresentation 방법
서열화기의 모든 필드는 실제적으로 이 필드 유형의 torepresentation 방법은 형식을 결정합니다. 이 방법을 다시 써서 형식을 결정할 수 있습니다.
주의,torepresentations 방법은 관련 대상 형식을 제어하는 데 국한될 뿐만 아니라, 각 서열화기 필드 형식에도 적용됩니다.
새 연결 필드를 사용자 정의하려면 다음과 같이 하십시오.
class BookRelateField(serializers.RelatedField):
""" """
def to_representation(self, value):
return 'Book: %d %s' % (value.id, value.btitle)
hbook이 BookRelateField 유형임을 나타냅니다.
hbook = BookRelateField(read_only=True
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
django rest framework : swagger다음 기사를 시도한 가정. rest framework로 만든 api 목록을 자동으로 생성합니다. swagger module 사용 아래 참조되었습니다. 활성화된 경로 목록이 표시됨 rest_project/setting...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.