DRF 직렬 변환기를 사용하여 사전 목록 유효성 검사

자물쇠

사전 목록의 유효성을 검사하는 직렬 변환기를 어떻게 작성합니까?

전송되는 샘플 페이로드는 다음과 같습니다.

"payment_discount": [
    {
        "discount_rule_id": 1,
        "discount_rule_name": "10 day early payment",
        "discount_earned": "298.00"
    },
    {
        "discount_rule_id": 2,
        "discount_rule_name": "Store discount",
        "discount_earned": "5.50"
    },
]

이 SO 대답이것 에서 취 하십시오 .

class PaymentDiscountSerializer(serializers.DictField):

    discount_rule_id = serializers.IntegerField(required=False)
    discount_rule_name = serializers.CharField(max_length=50)
    discount_earned = serializers.DecimalField(max_digits=10, decimal_places=3)

class PaymentDiscountListSerializer(serializers.ListField):
    """Serialize discount object"""
    child = PaymentDiscountSerializer()

class PaymentSerializer(serializers.ModelSerializer):
    payment_discount = PaymentDiscountListSerializer()
    # Other model fields

이것으로 serializer.data를 사용하여 페이로드의 payment_discount 객체에 액세스 할 수 있지만 불행히도 예를 들어 페이로드에 Decimal 유형이 아닌 discount_earned 값이 포함 된 경우 사전에 대한 유효성 검사가 수행되지 않습니다.

사용 : Django == 1.10.2 & djangorestframework == 3.5.1

F. 카론

serializer를 단순화 할 수 있다고 생각합니다 ... 테스트하지는 않았지만 다음과 같이 사용할 수 있습니다.

class PaymentDiscountSerializer(serializers.Serializer):
    """Serialize discounts"""
    discount_rule_id = serializers.IntegerField(required=False)
    discount_rule_name = serializers.CharField(max_length=50)
    discount_earned = serializers.DecimalField(max_digits=10, decimal_places=3)

class PaymentSerializer(serializers.ModelSerializer):
    payment_discount = PaymentDiscountSerializer(many=True)
    # Other model fields

원하는 개체 목록을 제공해야합니다.

유효성 검사를 위해 다음과 같이 즉시 작동합니다.

그러나 다시 테스트하지 않았습니다. 유효성 검사에 문제가있는 경우 직접 정의 할 수 있습니다. 예:

class PaymentDiscountSerializer(serializers.Serializer):
    """Serialize discounts"""
    discount_rule_id = serializers.IntegerField(required=False)
    discount_rule_name = serializers.CharField(max_length=50)
    discount_earned = serializers.DecimalField(max_digits=10, decimal_places=3)

    def validate_discount_rule_id(self, value):
        # Validation logic of the discount_rule_id field
        #
        return value

    def validate(self, attrs):
        # Validation logic of all the fields
        #
        return attrs

자세한 내용은 http://www.django-rest-framework.org/api-guide/serializers/#field-level-validation참조 하세요 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

직렬 변환기 유효성 검사 전에 추가 데이터를 추가하고 DRF에 저장하는 방법은 무엇입니까?

분류에서Dev

Graphene에서 DRF 직렬 변환기를 사용하는 방법

분류에서Dev

DialogFragment를 사용하여 사용자 항목 유효성 검사

분류에서Dev

VBA를 사용하여 여러 행에 유효성 검사 목록 삽입

분류에서Dev

PHP 유효성 검사를 위해 직렬화 기능을 사용하여 제출 버튼 값 게시

분류에서Dev

유효성 검사를 수행하는 동안 Django 모델 직렬 변환기에 추출 필드 추가

분류에서Dev

many = True로 DRF 직렬 변환기를 사용할 때 무거운 계산 결과 공유

분류에서Dev

CSS를 사용하여 유효성 검사 요약 텍스트를 수직으로 정렬

분류에서Dev

jquery를 사용하여 항목을 선택할 때 여러 드롭 다운 목록 유효성 검사

분류에서Dev

여러 목록을 사용한 가변 데이터 유효성 검사

분류에서Dev

내 DRF 직렬 변환기를 수동으로 사용할 수 없습니다.

분류에서Dev

DRF 직렬화 기와 함께 camelCase 속성을 사용하여 페이로드를 생성하는 방법

분류에서Dev

Gson을 사용하여 여러 유형의 목록 목록 역 직렬화

분류에서Dev

유효성 검사 속성 목록을 직렬화 할 때 오류가 발생했습니다.

분류에서Dev

XmlSerializer를 사용하여 중첩 목록 역 직렬화

분류에서Dev

유니 코드를 사용하여 값별로 목록에서 사전 정렬

분류에서Dev

고유 이메일 django rest 프레임 워크 직렬 변환기 유효성 검사

분류에서Dev

JavaScript를 사용하여 Excel에서 데이터 유효성 검사 목록을 추가하는 방법

분류에서Dev

jquery를 사용하여 요소 목록의 유효성을 검사하는 방법

분류에서Dev

셀 유효성 검사 목록에서 전치 될 때 사전 키가 변환됩니다.

분류에서Dev

Android Google Spreadsheet API를 사용하여 목록 범위 유효성 검사를 만드는 방법

분류에서Dev

XStream : 역 직렬화 후 유효성 검사를 수행하는 방법

분류에서Dev

활성 모델 직렬 변환기를 사용하여 2 단계 중첩 속성 직렬화

분류에서Dev

여러 행의 목록 유효성 검사를위한 하나의 매크로

분류에서Dev

역 직렬화하기 전에 개체의 유효성을 검사하는 방법

분류에서Dev

openpyxl-데이터 유효성 검사 읽기-목록

분류에서Dev

변수가있는 여러 유효성 검사 목록 만들기

분류에서Dev

RegEx를 사용하여 사용자 입력 유효성 검사

분류에서Dev

Siteminder WebAgent SSO를 사용하여 사용자 유효성 검사

Related 관련 기사

  1. 1

    직렬 변환기 유효성 검사 전에 추가 데이터를 추가하고 DRF에 저장하는 방법은 무엇입니까?

  2. 2

    Graphene에서 DRF 직렬 변환기를 사용하는 방법

  3. 3

    DialogFragment를 사용하여 사용자 항목 유효성 검사

  4. 4

    VBA를 사용하여 여러 행에 유효성 검사 목록 삽입

  5. 5

    PHP 유효성 검사를 위해 직렬화 기능을 사용하여 제출 버튼 값 게시

  6. 6

    유효성 검사를 수행하는 동안 Django 모델 직렬 변환기에 추출 필드 추가

  7. 7

    many = True로 DRF 직렬 변환기를 사용할 때 무거운 계산 결과 공유

  8. 8

    CSS를 사용하여 유효성 검사 요약 텍스트를 수직으로 정렬

  9. 9

    jquery를 사용하여 항목을 선택할 때 여러 드롭 다운 목록 유효성 검사

  10. 10

    여러 목록을 사용한 가변 데이터 유효성 검사

  11. 11

    내 DRF 직렬 변환기를 수동으로 사용할 수 없습니다.

  12. 12

    DRF 직렬화 기와 함께 camelCase 속성을 사용하여 페이로드를 생성하는 방법

  13. 13

    Gson을 사용하여 여러 유형의 목록 목록 역 직렬화

  14. 14

    유효성 검사 속성 목록을 직렬화 할 때 오류가 발생했습니다.

  15. 15

    XmlSerializer를 사용하여 중첩 목록 역 직렬화

  16. 16

    유니 코드를 사용하여 값별로 목록에서 사전 정렬

  17. 17

    고유 이메일 django rest 프레임 워크 직렬 변환기 유효성 검사

  18. 18

    JavaScript를 사용하여 Excel에서 데이터 유효성 검사 목록을 추가하는 방법

  19. 19

    jquery를 사용하여 요소 목록의 유효성을 검사하는 방법

  20. 20

    셀 유효성 검사 목록에서 전치 될 때 사전 키가 변환됩니다.

  21. 21

    Android Google Spreadsheet API를 사용하여 목록 범위 유효성 검사를 만드는 방법

  22. 22

    XStream : 역 직렬화 후 유효성 검사를 수행하는 방법

  23. 23

    활성 모델 직렬 변환기를 사용하여 2 단계 중첩 속성 직렬화

  24. 24

    여러 행의 목록 유효성 검사를위한 하나의 매크로

  25. 25

    역 직렬화하기 전에 개체의 유효성을 검사하는 방법

  26. 26

    openpyxl-데이터 유효성 검사 읽기-목록

  27. 27

    변수가있는 여러 유효성 검사 목록 만들기

  28. 28

    RegEx를 사용하여 사용자 입력 유효성 검사

  29. 29

    Siteminder WebAgent SSO를 사용하여 사용자 유효성 검사

뜨겁다태그

보관