当出现重复的记录时,是否可以跳过批量导入的记录?

时间:2018-06-28 20:05:25

标签: django python-3.x django-rest-framework django-serializer

我正在研究别人编写的一些代码,并且遇到了重复记录问题。我知道为什么弹出重复的问题(我添加了unique_together约束)。下面的代码用@ transaction.atomic装饰器包装,因此如果任何部分失败,它将回滚。我想让序列化器is_valid()函数跳过重复项,继续前进,而不提出ValidationError。我该怎么做,这是最佳做法吗?

代码利用Django Rest Framework的序列化器和验证器。

serializer_class = globals().get(table + 'Serializer')
if serializer_class is None:
    raise SerializerNotFound(table)
serializer = serializer_class(data=data, many=True)
serializer.is_valid(raise_exception=True)
serializer.save()

我还将此代码添加到了Serializer类中:

class Meta:
    model = CoolModelName
    validators = [
        validators.UniqueTogetherValidator(
            queryset=CoolModelName.objects.all(),
            fields=('field', 'list', 'names', 'here')
        )
    ]

0 个答案:

没有答案