Скажем, я хочу обновить запись в таблице table_X(atr1<key>, atr2)
базы данных.
У меня есть class X(atr1, atr2)
, сопоставленный с ним с помощью sqlalchemy. Я знаю, что в table_X
есть запись с columns = (atr1=1, atr2 ="John Smith")
Я хочу обновить запись, не запрашивая базу данных, поэтому я создаю объект x = (1, "John Williams")
.
Есть лиспособ обновить запись с помощью atr1 = 1
, добавив объект x в сеанс и зафиксировав?
Когда я попытался это сделать, я получил сообщение о том, что запись для atr1 = 1
уже существует, что, как я полагаю, означаетsqlalchemy не отображал объект в строку таблицы.
Есть ли способ сделать что-то похожее на то, что я пытался?
Я знаю, что мог бы использовать что-то вроде query(X).filter(atr1 = 1).update(atr2 = "John Smith")
, но вМой проектный объект x уже создан из веб-запроса, и я считаю, что немного деконструировать необходимость деконструировать объект в его атрибуты для запроса.