我似乎在将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中所做的更改或丢失的更改,从未提交。我是在这里使用错误的设计模式吗?还是有其他办法?