Django rest framework Django Rest框架嵌套序列化验证器
有没有一种方法可以在嵌套序列化中绕过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
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