我想仔细检查我是否正确解释了django-treebeard文档的以下部分:
django-treebeard 使用 Django 原始 SQL 查询进行一些写入操作,原始查询不会更新 ORM 中的对象,因为它被绕过了。
正因为如此,如果您在内存中有一个节点并计划在修改树(添加/删除/移动节点)后使用它,则需要重新加载它。
以下是我的理解:
如果我从数据库中加载了一个节点并在内存中处理它,我必须在保存之前使用refresh_from_db()。此外,如果树在 refresh_from_db 和保存之间被修改,我应该将这两个调用包装在一个原子事务中。
这个对吗?