Отключение фиксации изменений объекта в SQLAlchemy

Я использую SQLAlchemy в проекте, который не является веб-приложением. Это серверное приложение, которое загружает ряд различных объектов из базы данных и изменяет их локально, но не хочет сохранять эти обновления в базе данных каждый раз при выполнении фиксации. Раньше я работал с Django ORM для некоторых веб-проектов и обнаружил, что он лучше подходит для того, чего я пытаюсь достичь. В Django ORM я мог.save ()каждый объект всякий раз, когда я хотел, не сохраняя другие вещи, которые я, возможно, не хочу сохранять. Я понимаю, почему это работает так в SQLAlchemy, но мне интересно, как я мог бы сделать это в стиле Django -?


Обновление: Чтобы было легче понять, чего я пытаюсь достичь, я приведу пример.

Вот как это работает на самом деле:

a = MyModel.query.get(1)
b = MyModel.query.get(1)

a.somefield = 1
b.somefield = 2

# this will save both of changed models
session.commit()

Вот как я хочу, чтобы это работало:

a = MyModel.query.get(1)
b = MyModel.query.get(1)

a.somefield = 1
b.somefield = 2

a.save()
# I didn't want to save b, changes of b weren't committed

Я хочу иметь больший контроль над тем, что на самом деле сохраняется. Я хочу сохранять изменения каждого объекта каждые 5 минут или около того.

7
задан Donato Szilagyi 21 March 2013 в 18:48
поделиться