SQLALchemy从关系中去规范化字段
我有一个具有自我关系的模型和一个非规范化字段,该字段具有相关行中的一些值。有没有办法让它们自动同步,而不必通过属性传递关系 例如:SQLALchemy从关系中去规范化字段,sqlalchemy,Sqlalchemy,我有一个具有自我关系的模型和一个非规范化字段,该字段具有相关行中的一些值。有没有办法让它们自动同步,而不必通过属性传递关系 例如: class Node(Base): __tablename__ = 'node' id = Column(Integer, primary_key=True) id_parent = Column(Integer, ForeignKey('node.id)) data = Column(String(64)) last_mod
class Node(Base):
__tablename__ = 'node'
id = Column(Integer, primary_key=True)
id_parent = Column(Integer, ForeignKey('node.id))
data = Column(String(64))
last_modified = Column(DateTime, onupdate=utcnow)
parent_last_modified = Column(DateTime, onupdate=utcnow)
parent = relationship('Node', remote_side=[id])
我想保持parent\u last\u modified与parent.last\u modified同步,只要它发生更改。如果我可以通过parent.last\u modified访问parent\u last\u modified并访问非规范化字段,而不是进行新查询,那就更好了。以下事件回调解决了问题:
@event.listens_for(Node.parent, 'set')
def node_parent_listener(node, parent, previous, initiator):
if parent is None:
node.parent_last_modified = None
else:
node.parent_last_modified = parent.last_modified