【发布时间】:2014-12-24 18:52:15
【问题描述】:
我正在尝试使用 Flask-SQLAlchemy 实现嵌套集模型。
我看到这个使用 SQLAlchemy 的例子:http://docs.sqlalchemy.org/en/rel_0_9/_modules/examples/nested_sets/nested_sets.html
魔法似乎发生在他们对before_insert的定义中:
@event.listens_for(Employee, "before_insert")
def before_insert(mapper, connection, instance):
if not instance.parent:
instance.left = 1
...
我绝对不是嵌套集合方面的专家,但据我了解,“添加”需要一些前期工作才能为要添加的新项目找出“左”和“右”的新值,以及可能用于表中的所有内容。 (同样适用于删除。)我想也许我可以在我的应用程序的常规流程中添加该预工作,而不是使用示例中的 before_insert。
我一直在寻找是否有办法以类似的方式从 Flask-SQLAlchemy 框架中覆盖 db.session.add。还是我应该在这里做点别的?
【问题讨论】:
-
可能你会对pypi.python.org/pypi/sqlalchemy_mptt感到满意
-
@uralbash:太好了,谢谢!希望几个月前我能看到它:)
标签: python sqlalchemy flask-sqlalchemy nested-sets