django 서열화 사용

2320 단어 DRF프레임

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 매개변수:
  • read 포함only=True 매개 변수일 때 이 필드는 반서열화로 사용할 수 없습니다
  • queryset 파라미터를 포함할 때 반서열화 시 파라미터 검사에 사용
  • 2) StringRelatedField
    이 필드는 연관된 객체의 문자열 표현으로 시리얼화됩니다( 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

    좋은 웹페이지 즐겨찾기