или из view), производит валидацию (так называемый service). Точнее, это метод класса, но это вообще не важно.
В ходе валидации используются связанные модели (есть специифческая логика, согласно которой одни связанные поля не могут быть одновременно с другмим, например). Поэтому перед валидацией я сохраняю основную модель. Это сохранение обернуто в transaction.atomic(), вся функция — тоже atimoic.
Вылезает IntegrityError FOREIGN KEY constraint failed. Я предполагаю, что это связано с тем, что вся большая — atomic, поэтому основная модель не коммитится в базе данных и обратится к свзяанным полям невозможно, но мб и не так. Кто-то может помочь? Вот, чего я хочу достичь: есть большая функция, в ходе которой я хочу обращаться к related models, при этом, если какая-то ошибка во время выполнения этой функции, все измнения в базе данных откатить и вернуть в админку или во view сообщение об ошибке валидации.
Если не ошибаюсь данная проблема описана в доке джанго где вылазит проблема с IntegrityError
Обсуждают сегодня