簡體   English   中英

drf ModelSerializer 字段級別驗證

[英]drf ModelSerializer field level validation

我正在嘗試進行字段級驗證以驗證 ModelSerialzer 中的branch字段,但從未調用過此方法。

class UserProfileSerializer(serializers.ModelSerializer):
    branch = serializers.ChoiceField(choices=Branch.choices)

    class Meta:
        model = UserProfile
        exclude = ['user']

    def validate_branch(self, branch):
        print(branch)
        return branch.upper()


class CustomRegisterSerializer(RegisterSerializer):
    profile = UserProfileSerializer(source="userprofile")

    @transaction.atomic
    def create(self, validated_data):
        validated_profile_data = validated_data.pop('profile')
        user = User.objects.create(**validated_data)
        UserProfile.objects.create(user=user, **validated_profile_data)
        return user

我跟着這個drf docs

調用 is_valid 時運行驗證器。 您可以從下面提到的代碼中了解如何調用 is_valid() 方法。 您可以從views.py 中調用它。

serializer = UserProfileSerializer(data="The data you want to send")
serializer.is_valid(raise_exception=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM