Можете ли вы пропустить запись при массовом импорте, когда появится дублирующаяся запись? - PullRequest
0 голосов
/ 28 июня 2018

Я углубляюсь в некоторый код, написанный другими, и сталкиваюсь с проблемой дублирования записей. Я понимаю, почему возникает проблема дублирования (я добавил ограничение 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')
        )
    ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...