Python / SQLAlchemy - 更新外键时加载关联?
我有一个类:
class Chart(Base):
__tablename__ = 'chart'
id = C('chart_id', Integer, primary_key=True)
element_id = C(Integer, ForeignKey('element.element_id'))
element = relationship(Element)
name = C(String)
def __init__(self, name):
self.name = name
这个类的用法很常见,
chart = Chart('Some name')
chart.element_id = element_id
但是在设置了 element_id 之后,chart.element 变成了 None。有没有什么办法可以在保存之前自动加载这个关系,以便新对象能用上?
1 个回答
6
最好的选择是
chart = Chart('Some name')
chart.element = element
直接将对象分配给关系。如果你分配了 element_id
,那么在刷新之前,它会一直保存在内存中。内部会执行一个查询 SELECT * FROM ELEMENT WHERE ELEMENT.id = element_id
,但是这个 element_id 的数据并没有被存储,或者说它只是在内存中。
所以我建议直接分配对象,如果你不想刷新。
希望这对你有帮助。