嵌套集模型和SQLAlchemy - 添加新节点

zen*_*nde 3 python sql tree sqlalchemy nested-sets

如何将新的节点与SQLAlchemy一起添加到使用嵌套集模型实现的树中?

class Category(Base):
    __tablename__ = 'categories'

    id = Column(Integer, primary_key=True)
    name = Column(String(128), nullable=False)
    lft = Column(Integer, nullable=False, unique=True)
    rgt = Column(Integer, nullable=False, unique=True)
Run Code Online (Sandbox Code Playgroud)

我需要在表上分配一个触发器来为新节点分配lftrgt更新所有其他受影响的节点,但是定义节点位置的最佳方法是什么?我可以将parent_id新节点传递给构造函数,但是如何将其传递parent_id给触发器?

Ant*_*sma 6

您可能希望查看SQLAlchemy的examples目录中的嵌套集示例.这在Python级别实现了该模型.

使用触发器在数据库级别执行此操作需要某种方式来传达所需的父级,作为额外列或存储过程.