методы модели и экземпляра: осведомленность о сеансе (sqlalchemy)

Итак, использование и обучение с помощью sqlalchemy.

У меня есть экземпляр, мне нужно получить значение. Если это значение существует, верните его. Если не вычислить и вернуть его.

Неизменно кто-то скажет: «Вы делаете это неправильно», и в целом приветствуется вклад в улучшение.Однако я ищу, как я могу сделать это без явного управления сеансом, потому что то, над чем я работаю, начинает расти, и постоянно управлять сеансом, когда я хочу обновить экземпляр, проблематично. Это заставляет меня думать, что я действительноделаю это неправильно.

Итак, как мне исправить описанный ниже метод, чтобы он не управлял сеансом явно?

def method(self, session):
        if self.i_needed_this is None:
            self.i_needed_this = calculate(calcutron)
            session.add(self)
            session.commit()
            return self.i_needed_this                        
        else:
            return self.i_needed_this

Может быть, этот вопрос следует озаглавить «создание осведомленности о сеансе экземпляров, чтобы я не всегда явно управлял им», и, если это глупый вопрос, по крайней мере, покажите мне, почему, на примерах, и укажите, где другие спрашивали лучше.

Редактировать: очевидно, импорт сеанса, который я использую, работает, и он доступен, так что, возможно, это не проблема или проблема появится в будущем, когда я буду более опытен в sqlalchemy.

15
задан Prof. Falken supports Monica 15 May 2013 в 11:13
поделиться