Я углубляюсь в некоторый код, написанный другими, и сталкиваюсь с проблемой дублирования записей. Я понимаю, почему возникает проблема дублирования (я добавил ограничение unique_together). Приведенный ниже код обернут в декоратор @action.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()
Я также добавил этот код в класс сериализатора:
class Meta:
model = CoolModelName
validators = [
validators.UniqueTogetherValidator(
queryset=CoolModelName.objects.all(),
fields=('field', 'list', 'names', 'here')
)
]