有没有办法绕过嵌套序列化中的Django Rest Framework验证器而不覆盖原始序列化器上的验证器?

示例:

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


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

    class Meta:
        model = models.Task

如果我尝试更新或创建任务,我将收到unicity错误,因为DRF使用User模型的用户名字段上的唯一约束 .

我找到的解决方案是覆盖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