有没有办法绕过嵌套序列化中的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