【发布时间】:2011-11-05 00:35:19
【问题描述】:
我正在构建大型 mptt 树。 我想插入所有节点,然后再插入重建整个树的启动方法:
for i in range(big_loop):
...
m.save() # Saving mptt object. Tree is rebuild.
some_mptt_model.tree.rebuild()
如何避免在每次插入后重建树?
我在.save 方法中只发现了 depracticed 关键字:
在早期版本中,MPTTModel.save() 有一个原始关键字参数。如果 没错,MPTT 字段在保存期间不会更新。这 (未记录的)参数现已被删除。
【问题讨论】:
-
我不这么认为,至少就 MPTT 而言,您应该在每次插入后重建插入项目右侧的部分树索引。使用 MPTT 读取非常便宜,而更新非常昂贵。尽管您可以一次性更新它们的索引 +2,而不是循环遍历右侧的项目。
标签: django django-mptt mptt