боролись с этой проблемой?
например?
Заметил через долгое время, что несколько записей не обновляются, а создаются заново. При том, проверил, а они абсолютно идентичны по тем параметрам, которые идут в get
нужно смотреть логику создания, возможно по переданным данным орм не понимает что это тот же объект, возможно есть смысл сделать юник тугезе чтобы избежать
так а юник тугезе просто выбьет ошибку и все. Инфа то не обновится ведь?
ну как минимум не будет задвоения данных, я так понимаю что апдей ор криэйт работает так - пытается найти как гет, и если ошибка то создает новый, но ошибка может быть не потому что не нашел, а потому что нашел несколько
там вроде бы только на DoesNotExists стоит проверка
как по твоему он должен действовать если несколько записей находит?
обработать MultipleObjectsReturned, мне кажется. По крайней мере, get_or_create все равно кидает этот експешн, если находит более одного
проверил сейчас по нескольких полям, да, кидает MultipleObjectsReturned в update_or_create тоже
Тогда вообще не понятно как может дублировать
очевидно, что пытается сделать get, не находит и создает. Не понимает, что одинаковые. Посмотрел код джанги на гите, у них в get_or_create идет обработка IntegrityError. Вполне может быть, что юник тугезе даже обновит инфо. Сейчас попробую и отпишу)
Обсуждают сегодня