0

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) 

私が行うことはすべて、新しいツリーを作成します。

4

1 に答える 1

1

ツリーには 1 つのルート ノードがあります。新しいルート ノードを追加しようとしている場合、それは新しいツリーを追加することを意味します。django-mptt は、1 つのツリー (ルート ノードを 1 つだけ作成する) またはツリーのフォレスト全体のいずれかをサポートします。

.move_to()手動でユーザーがノードを並べ替えるなど、本当に特別なことをしていない限り、基本的に を使用する必要はありません。親を None に設定するだけです。FactoryBoy についてはよくわかりませんが、新しいルート ノードを作成する通常の方法は次のとおりです。

MyNode.objects.create(name='NewRoot', parent=None)
于 2015-02-12T19:01:16.907 に答える