传递给类的SQLAlchemy对象丢失更改

时间:2018-12-11 12:39:55

标签: python flask sqlalchemy

我似乎在将SQLAlchemy对象传递给其他类时遇到问题。

问题如下:我在app.py中有某些Flask模块。从那里,我从另一个类初始化一个对象,让我们将该类A和对象a称为。我还初始化了一个名为File的SQLAlchemy对象(来自模型File),并将其传递给类,如下所示:

app.py:

file = File(...)
db_session.add(file) # db_session is a scoped session
db_session.commit()
a = A(file=file)
a.do_stuff()
file = db_session.merge(a.file)

A.py

class A:
    def __init__(self, file)
        self.file = file
    def do_stuff(self):
        self.file.some_attr = 'new_value'
        db_session.commit()

在A中所做的更改或丢失的更改,从未提交。我是在这里使用错误的设计模式吗?还是有其他办法?

0 个答案:

没有答案