следующая логика:
Если модель уже была создана — нужно проверить все ли поля совпадают с data которая была отправлена. Если отличается, нужно обновить поля в модели.
Думал эту логику можно проверить и осуществить в методе create сериалайзера.
Но запрос туда не доходит и возвращает 400 ответ. Подскажите в какой части кода это можно осуществить?
По какому полю ты понимаешь что модель такая уже создана?
Посмотри у джанго метод get_or_update
update_or_create больше подходит. Меня смущает что запрос не доходит до метода create в сериалайзере
Покажи полностью вьюху
я заскринил ее полностью. Больше ничего не переопределено
А в терминале что он пишет по поводу ошибки, скинь трейс
Смотри там trace нету. Только логи о том что 400 запрос. + принты которые я вывожу для отладки. На второй фотографии скрин терминала. Первый раз когда создаю модель — все ок. Метод create срабатывает. Видно по принтам. Второй раз когда делаю тот же запрос метод create не срабатывает.
Ну да при создании у нас все ок, проблема с апдейт
Нашел решение. Утром попробую сделать вот так. https://stackoverflow.com/questions/41147607/django-rest-framework-how-to-use-update-or-create
Похоже нужно на вьюху выносить проверку а потом уже в сериализатор передавать данные и на вьюхе сохранять если сериалайз дата валидна
Обсуждают сегодня