最佳做法是通过访问数据库来验证ModelSerializer中的字段是否已为Django模型中的验证器提供验证的字段吗?

问题描述 投票:0回答:1

例如,我有一个Django模型,如

class User(models.Model):
    email = models.EmailField(required=True, unique=True)

不是redundant并违反DRY原则再次在ModelSerializer中进行如下验证吗?

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = '__all__'
    def validate_email(self, email):
        try:
            User.objects.get(email=email)
            raise serializers.ValidationError("Email address already used")
        except User.DoesNotExist:
            return email

validate_email方法有点违背DRY PRINCIPLE和在这种情况下是错误的,因为我们必须访问Database才能在此方法中进行验证。请纠正我。

python django django-rest-framework django-serializer
1个回答
2
投票

您不必在序列化器中再次验证数据

© www.soinside.com 2019 - 2024. All rights reserved.