更新外键时Python/SQLAlchemy-加载关系?
我有一门课:更新外键时Python/SQLAlchemy-加载关系?,python,orm,sqlalchemy,Python,Orm,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):
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
但是在设置元素\u id之后chart.element是None。在刷新/提交之前,有没有办法为新对象自动加载此关系 最好的选择是
chart = Chart('Some name')
chart.element = element
将直接对象指定给关系。如果您分配元素\u id
,则在它刷新之前,它将在内存中。在内部,它将从ELEMENT.id=ELEMENT\u id的元素中触发一个查询SELECT*,但该元素的id数据未存储或将存储在内存中
所以如果你不想刷新,我建议直接分配对象
希望这能对您有所帮助。谢谢您的回复。我现在用这种方法。我的函数接收元素的id,我自己获取元素以在图表对象中设置它(刷新在内部完成)。看来这是唯一的办法。