gpt4 book ai didi

Django Rest Framework 模型序列化器没有唯一的共同验证

转载 作者:行者123 更新时间:2023-12-02 11:37:00 30 4
gpt4 key购买 nike

我有一个包含一些字段和唯一的模型:

....
class Meta(object):
unique_together = ('device_identifier', 'device_platform',)

显然,通过这种方式,关于 Django Rest Framework 序列化器,当我尝试使用相同的 device_identifierdevice_platform (如果已经存在)进行 PUT 时,我会收到错误包含此数据的条目)。

{
"non_field_errors": [
"The fields device_identifier, device_platform must make a unique set."
]
}

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

最佳答案

Django REST 框架在序列化器上应用UniqueTogetherValidator。您可以通过覆盖序列化器定义中的 validators 字段来删除它。

class ExampleSerializer(serializers.ModelSerializer):
class Meta:
validators = []

请注意,这也会删除其他 unique-check validators应用于模型,这可能不是最好的主意。为了避免这种情况,只需重写序列化器上的 get_unique_together_validators 方法,以确保仅删除唯一在一起检查。

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

关于Django Rest Framework 模型序列化器没有唯一的共同验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45999131/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com