Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Rest框架模型序列化程序,无唯一性验证_Django_Python 2.7_Serialization_Django Rest Framework_Unique - Fatal编程技术网

Django Rest框架模型序列化程序,无唯一性验证

Django Rest框架模型序列化程序,无唯一性验证,django,python-2.7,serialization,django-rest-framework,unique,Django,Python 2.7,Serialization,Django Rest Framework,Unique,我有一个带有一些字段的模型和一个唯一的: .... class Meta(object): unique_together = ('device_identifier', 'device_platform',) 显然,通过这种方式,关于Django rest framework serializer,当我尝试使用相同的device\u标识符和device\u平台(如果已经存在一个包含此数据的条目)进行PUT时,我会得到一个错误 可以在我的模型序列化程序中禁用此验证吗? 因为我需要在保存

我有一个带有一些字段的模型和一个唯一的

....
class Meta(object):
    unique_together = ('device_identifier', 'device_platform',)
显然,通过这种方式,关于Django rest framework serializer,当我尝试使用相同的
device\u标识符
device\u平台
(如果已经存在一个包含此数据的条目)进行PUT时,我会得到一个错误

可以在我的模型序列化程序中禁用此验证吗?
因为我需要在保存模型步骤中管理这种情况(对我来说,在序列化程序验证中这不是错误)

您需要从序列化程序列表中删除验证程序


尽管不完全相同,但Django REST框架将在序列化程序上应用UniqueTogetherValidator
来解释这些步骤。您可以通过覆盖序列化程序定义中的
验证程序
字段来删除此项

class ExampleSerializer(serializers.ModelSerializer):
    class Meta:
        validators = []
请注意,这也会删除应用于模型的其他选项,这可能不是最好的主意。为了避免这种情况,只需覆盖序列化程序上的
get_unique_together_validators
方法,以确保只删除unique together检查

class ExampleSerializer(serializers.ModelSerializer):
    def get_unique_together_validators(self):
        """Overriding method to disable unique together checks"""
        return []
class ExampleSerializer(serializers.ModelSerializer):
    def get_unique_together_validators(self):
        """Overriding method to disable unique together checks"""
        return []