将新的根节点添加到django-mptt树

时间:2015-02-12 16:27:04

标签: python django django-mptt factory-boy

如何在django-mptt中将新根节点添加到现有树?我正在使用Django 1.7.4和django-mptt == 0.6.1与FactoryBoy测试树木。我尝试了以下方法:

my_leaf.move_to(my_root, position='left') # creates a new tree
my_leaf.move_to(None, position='this_is_ignored') # also creates a new tree

newroot = factories.MyFactory.build(parent=None, name="NewRoot")
newroot.insert_at(self.my_root, position='left', save=True) 

我做的每件事都会创造一棵新树。

1 个答案:

答案 0 :(得分:1)

树有一个根节点。如果您尝试添加新的根节点,则表示添加新树。 django-mptt支持拥有一棵树(只创建一个根节点)或整个树林。

您基本上不需要使用.move_to(),除非您正在做一些非常特殊的事情,比如手动用户排序的节点。只需将父级设置为“无”。我对FactoryBoy了解不多,但创建新根节点的常用方法就是:

MyNode.objects.create(name='NewRoot', parent=None)