Drf ModelSerializer валидация на уровне поля
Я пытаюсь провести валидацию на уровне поля для проверки поля branch
в ModelSerialzer, но этот метод никогда не вызывается.
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)