Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新外键时Python/SQLAlchemy-加载关系?_Python_Orm_Sqlalchemy - Fatal编程技术网

更新外键时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,我自己获取元素以在图表对象中设置它(刷新在内部完成)。看来这是唯一的办法。