如何在sqlalchemy的邻接列表中向父节点添加子节点?

时间:2014-02-03 00:33:18

标签: python sqlalchemy

我正在看下面的例子。我的程序设置类似,但没有backref。我想要一对多的关系。孩子们不需要了解他们的父母。我只是一个但很困惑,因为行“node = TreeNode('rootnode')”,每次执行程序时都不会运行并可能创建重复项?

如何在没有父背光的情况下添加子节点?

我看到例如以下

node = TreeNode('rootnode')
TreeNode('node1', parent=node)

创建node1,名称为“node1”,并且它的父级单独传递。 parent在子关系中定义为

backref("parent", remote_side=id)

我不太需要孩子认识父母,只有父母认识孩子。你如何建立这种关系,让父母知道孩子?

http://docs.sqlalchemy.org/en/latest/_modules/examples/adjacency_list/adjacency_list.html

1 个答案:

答案 0 :(得分:0)

rootnode = TreeNode('rootnode')
# assign "children" attribute straight away:
node1 = TreeNode('node1', 
    children=[TreeNode('node1.child1'), TreeNode('node1.child2')]
    )
# or just manipulate as any regular list
rootnode.children.append(node1)

我链接到parent的示例已经知道children已定义relationship个孩子{/ 1}}

children = relationship("TreeNode", # NOTE: now each TreeNode has "children"
                    # ...
                    backref=backref("parent", remote_side=id), # this line allows children to link to "parent"
                    # ...
                )

因此