diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2005-10-16 21:38:58 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2005-10-16 21:38:58 +0000 |
commit | a3cb33357c41cedd2128c9d261208b33a370ad5d (patch) | |
tree | 0ae10ce13a68c15f6b10dade4ae32eb061887ed3 /examples/adjacencytree/byroot_tree.py | |
parent | 80fae8ca4157f6c67ba0b9abbf83bcb8b49fd4dc (diff) | |
download | sqlalchemy-a3cb33357c41cedd2128c9d261208b33a370ad5d.tar.gz |
Diffstat (limited to 'examples/adjacencytree/byroot_tree.py')
-rw-r--r-- | examples/adjacencytree/byroot_tree.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/examples/adjacencytree/byroot_tree.py b/examples/adjacencytree/byroot_tree.py index ac711eea2..e948c2103 100644 --- a/examples/adjacencytree/byroot_tree.py +++ b/examples/adjacencytree/byroot_tree.py @@ -52,6 +52,8 @@ class TreeNode(object): self.children.append(TreeNode(node)) else: self.children.append(node) + def __repr__(self): + return self._getstring(0, False) def __str__(self): return self._getstring(0, False) def _getstring(self, level, expand = False): @@ -89,6 +91,12 @@ class TreeLoader(MapperExtension): parentnode.children.append(instance, _mapper_nohistory=True) return False +class TreeData(object): + def __init__(self, value=None): + self.id = None + self.value = value + def __repr__(self): + return "TreeData(%s, %s)" % (repr(self.id), repr(self.value)) # define the mapper. we will make "convenient" property # names vs. the more verbose names in the table definition @@ -99,6 +107,8 @@ TreeNode.mapper=assignmapper(tables.trees, properties=dict( root_id=tables.trees.c.root_node_id, root=relation(TreeNode, primaryjoin=tables.trees.c.root_node_id==tables.trees.c.node_id, thiscol=tables.trees.c.root_node_id, lazy=None, uselist=False), children=relation(TreeNode, primaryjoin=tables.trees.c.parent_node_id==tables.trees.c.node_id, thiscol=tables.trees.c.node_id, lazy=None, uselist=True, private=True), + data=relation(TreeData, tables.treedata, properties=dict(id=tables.treedata.c.data_id), private=True, lazy=False) + ), extension = TreeLoader()) TreeNode.mapper @@ -109,7 +119,9 @@ node = TreeNode('rootnode') node.append('node1') node.append(node2) node.append('node3') +node.children['node3'].data = TreeData('node 3s data') node.children['node2'].append('subnode2') +node.children['node1'].data = TreeData('node 1s data') print "\n\n\n----------------------------" print "Created new tree structure:" |