3838
3939Add mixin to model
4040
41- .. testsetup :: *
42-
43- engine = create_engine("sqlite:///:memory: ")
44- session = Session(engine)
45-
46- .. testcode :: default,delete-node,update-node,move-inside,move-after,move-top
41+ .. code-block :: python
4742
4843 from sqlalchemy import Column, Integer, Boolean
4944 from sqlalchemy.ext.declarative import declarative_base
@@ -62,40 +57,12 @@ Add mixin to model
6257 def __repr__ (self ):
6358 return " <Node (%s )>" % self .id
6459
65- .. testcode :: default,delete-node,update-node,move-inside,move-after,move-top
66- :hide:
67-
68- Base.metadata.create_all(engine)
69- tree_manager.register_events(remove=True)
70- instances = [
71- Tree(id=1, parent_id=None),
72- Tree(id=2, parent_id=1),
73- Tree(id=3, parent_id=2),
74- Tree(id=4, parent_id=1),
75- Tree(id=5, parent_id=4),
76- Tree(id=6, parent_id=4),
77- Tree(id=7, parent_id=1),
78- Tree(id=8, parent_id=7),
79- Tree(id=9, parent_id=8),
80- Tree(id=10, parent_id=7),
81- Tree(id=11, parent_id=10)
82- ]
83- for instance in instances:
84- instance.left = 0
85- instance.right = 0
86- instance.visible = True
87- instance.tree_id = 1
88- session.add_all(instances)
89- session.flush()
90- tree_manager.register_events()
91- Tree.rebuild_tree(session, tree_id=1)
92-
9360 Now you can add, move and delete obj!
9461
9562Insert node
9663-----------
9764
98- .. testcode ::
65+ .. code-block :: python
9966
10067 node = Tree(parent_id = 6 )
10168 session.add(node)
@@ -126,7 +93,7 @@ Insert node
12693Delete node
12794-----------
12895
129- .. testcode :: delete-node
96+ .. code :: python
13097
13198 node = session.query(Tree).filter(Tree.id == 4 ).one()
13299 session.delete(node)
@@ -156,7 +123,7 @@ Delete node
156123Update node
157124-----------
158125
159- .. testcode :: update-node
126+ .. code :: python
160127
161128 node = session.query(Tree).filter(Tree.id == 8 ).one()
162129 node.parent_id = 5
@@ -195,36 +162,9 @@ Move node (support multitree)
195162
196163 Nested sets multitree
197164
198- .. testcode :: move-inside,move-top
199- :hide:
200-
201- tree_manager.register_events(remove=True)
202- instances = [
203- Tree(id=12, parent_id=None),
204- Tree(id=13, parent_id=12),
205- Tree(id=14, parent_id=13),
206- Tree(id=15, parent_id=12),
207- Tree(id=16, parent_id=15),
208- Tree(id=17, parent_id=15),
209- Tree(id=18, parent_id=12),
210- Tree(id=19, parent_id=18),
211- Tree(id=20, parent_id=19),
212- Tree(id=21, parent_id=18),
213- Tree(id=22, parent_id=21)
214- ]
215- for instance in instances:
216- instance.left = 0
217- instance.right = 0
218- instance.visible = True
219- instance.tree_id = 2
220- session.add_all(instances)
221- session.flush()
222- tree_manager.register_events()
223- Tree.rebuild_tree(session, tree_id=2)
224-
225165Move inside
226166
227- .. testcode :: move-inside
167+ .. code :: python
228168
229169 node = session.query(Tree).filter(Tree.id == 4 ).one()
230170 node.move_inside(" 15" )
@@ -254,7 +194,7 @@ Move inside
254194
255195Move after
256196
257- .. testcode :: move-after
197+ .. code :: python
258198
259199 node = session.query(Tree).filter(Tree.id == 8 ).one()
260200 node.move_after(" 5" )
@@ -283,7 +223,7 @@ Move after
283223
284224Move to top level
285225
286- .. testcode :: move-top
226+ .. code :: python
287227
288228 node = session.query(Tree).filter(Tree.id == 15 ).one()
289229 node.move_after(" 1" )
0 commit comments