Django rest framework Django Rest框架嵌套序列化验证器

Django rest framework Django Rest框架嵌套序列化验证器,django-rest-framework,Django Rest Framework,有没有一种方法可以在嵌套序列化中绕过Django Rest框架验证程序,而不覆盖原始序列化程序上的验证程序 例如: class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ('username') class TaskSerializer(serializers.ModelSerializer): owner = UserSeria

有没有一种方法可以在嵌套序列化中绕过Django Rest框架验证程序,而不覆盖原始序列化程序上的验证程序

例如:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('username')


class TaskSerializer(serializers.ModelSerializer):
    owner = UserSerializer()

    class Meta:
        model = models.Task
如果我尝试更新或创建一个任务,我将得到一个unicity错误,因为DRF在用户模型的username字段上使用unique约束

我找到的解决方案是覆盖UserSerializer上的验证程序:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('username')
        extra_kwargs = {
            'username': {
                'validators': []
            }
有没有一种方法可以绕过此验证而不直接在UserSerializer中覆盖验证程序? 通过重写这个验证器,我必须重写我在模型上定义的每个约束

下面这样的解决方案很好,因为它只允许在TaskSerializer中绕过验证器,而不覆盖初始UserSerializer

class TaskSerializer(serializers.ModelSerializer):
    owner = UserSerializer(validators=[])

    class Meta:
        model = models.Task