我有一个班级:
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。有没有办法在刷新/提交之前为新对象自动加载此关系?
答案 0 :(得分:5)
最好的选择是
chart = Chart('Some name')
chart.element = element
将直接对象分配给关系船。如果您指定element_id
,那么直到它被刷新它将在内存中。在内部,它将触发查询SELECT * FROM ELEMENT WHERE ELEMENT.id = element_id
,但该element_id数据不存储或存在于内存中。
所以如果你不想冲洗,我建议直接分配对象。
希望这会对你有所帮助。