те числа, которые валидные, а те, что нет, возвращались, в сообщении response? В примере происходит сохранение, только если все числа валидные
https://dpaste.org/TSAt
Два варианта: 1) напиши кастомный метод SyncMarkSerializer.is_valid() Судя по вопросу, в этом случае форма (почти) всегда будет валидна. И позже сделай разбор чисел на хорошие/плохие или 2) если встроенный is_valid() вернул False, сделай разбор чисел на хорошие/плохие; плохие верни в response
если использовать первый вариант, в сериализаторе будет словарь validated_data, после валидации, а для невалидных чисел можно сделать словарь invalid_data, в котором будет ids с неправильными числами. if form.is_valid(): # form.validate_data[‘ids’] # логика сохранения валидных данных if form.invalid_data[‘ids’]: return Response(form.invalid_data[‘ids’]) Что-то типа такого, хотя, наверное лучше сделать какой-то метод а-ля has_invalid_data() в котором будет raise ValidationErrorException Т.е. сначала сохраняем валидные данные, а потом пишем сообщение, что все сохранено, кроме чисел (и список чисел) Нормальное решение?
Это нестандартное поведение. Как его реализовать, думай сам. Стандартное - проверить форму, если все поля корректные, сохранить, иначе показать (вернуть) форму с введенными данными и уведомлениями о том, где именно ошибки. Так у тебя сейчас работает (скорее всего). Я бы предложил подумать о том, нужно ли тебе нестандартное поведение на самом деле или нет. Что для твоего API ок, а что не ок.
Обсуждают сегодня