Python/SQLAlchemy - 更新外键时的加载关系?

Vic*_*tor 6 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):
      self.name = name
Run Code Online (Sandbox Code Playgroud)

用法很常见,

chart = Chart('Some name')
chart.element_id = element_id
Run Code Online (Sandbox Code Playgroud)

但是在设置element_id之后,chart.element为None.有没有办法在刷新/提交之前为新对象自动加载此关系?

Nil*_*esh 6

最好的选择是

chart = Chart('Some name')
chart.element = element
Run Code Online (Sandbox Code Playgroud)

将直接对象分配给关系船.如果你被分配,element_id那么直到它被冲洗它将在内存中.在内部,它将触发一个查询SELECT * FROM ELEMENT WHERE ELEMENT.id = element_id但是element_id数据不存储或者它将在内存中.

所以如果你不想冲洗,我建议直接分配对象.

希望这会帮助你.