Flask Sqlalchemy иногда откатывается после фиксацииPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Flask Sqlalchemy иногда откатывается после фиксации

Сообщение Anonymous »


У меня есть таблица «Заказы», ​​в которой есть поле «комментарии», которое представляет собой массив json объектов json. например [{"timestamp":"timestamp_value","message":"message_value"}] Вот функция конечной точки колбы, которую я использую для добавления комментария
класс CommentOnOrderService: """ Содержит функцию, которая позволит комментировать и исправлять любые записи в таблице заказов. """ def comment_on_order(self, параметры): двигатель = db.get_engine() эконом = двигатель.connect() сеанс = сеанс (bind = econ) конн = сеанс.соединение() номер_заказа = params.get("номер_заказа", "") отметка времени = params.get("метка времени", "") если временная метка: метка времени = datetime.fromisoformat(метка времени) статус = params.get("статус", "") комментарии = params.get("комментарии", "") comment_to = params.get("comment_to", "") comment_from = params.get("comment_from", "") truncate = params.get("truncate", "") == "true" пытаться: строка: Статус заказа если временная метка: строка = session.query(OrderStatus).filter( и_( OrderStatus.order_number == order_number, OrderStatus.timestamp == временная метка, ) ).первый() еще: строка = ( session.query(OrderStatus).filter(OrderStatus.order_number == order_number) .order_by(desc("метка времени")) .первый() ) если не строка: поднять исключение («Запись не найдена») если статус: строка.статус = статус если комментарии: если обрезать: строка.комментарии = [ { «метка времени»: datetime.now().isoformat(), "comment_to": comment_to, "комментарий_от": комментарий_от, "comment_body": комментарии, } ] еще: превданные = row.comments row.comments = предыдущие данные + [ { «метка времени»: datetime.now().isoformat(), "comment_to": comment_to, "комментарий_от": комментарий_от, "comment_body": комментарии, } ] Элиф обрезать: строка.комментарии = [] с помощью session.begin_nested(): сеанс.add(строка) сеанс.коммит() econ.execute("СОВЕРШИТЬ") вернуть ответ.успех( {"message": "Заказ успешно прокомментирован", "params": params} ) кроме Исключения как исключения: вернуть Resp.error([str(исключение)]) окончательно: сеанс.закрытие()
В большинстве случаев комментарий добавляется и правильно отражается в пользовательском интерфейсе, который я создаю. Однако иногда, когда он добавляется, он отображается в пользовательском интерфейсе, а затем случайным образом откатывается.

Я пробовал использовать mutable_dict и некоторые другие методы, но безрезультатно и могу понять, почему происходит откат. Может кто-нибудь помочь мне расшифровать это?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»