Skip to content

Commit 9b0c1b6

Browse files
committed
Update README.md
1 parent cb80b18 commit 9b0c1b6

File tree

1 file changed

+175
-0
lines changed

1 file changed

+175
-0
lines changed

README.md

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,178 @@ class Tree(Base, BaseNestedSets):
4949
Tree.register_tree()
5050
```
5151
Now you can add, move and delete obj
52+
53+
Insert node
54+
-----------
55+
56+
```python
57+
node = Tree(parent_id=6)
58+
session.add(node)
59+
```
60+
61+
level Nested sets example
62+
1 1(1)22
63+
_______________|___________________
64+
| | |
65+
2 2(2)5 6(4)11 12(7)21
66+
| ^ ^
67+
3 3(3)4 7(5)8 9(6)10 13(8)16 17(10)20
68+
| |
69+
4 14(9)15 18(11)19
70+
71+
level Insert node with parent_id == 6
72+
1 1(1)24
73+
_______________|_________________
74+
| | |
75+
2 2(2)5 6(4)13 14(7)23
76+
| ____|____ ___|____
77+
| | | | |
78+
3 3(3)4 7(5)8 9(6)12 15(8)18 19(10)22
79+
| | |
80+
4 10(23)11 16(9)17 20(11)21
81+
82+
Delete node
83+
-----------
84+
85+
```python
86+
node = session.query(Tree).filter(Tree.id == 4).one()
87+
session.delete(node)
88+
```
89+
90+
level Nested sets example
91+
1 1(1)22
92+
_______________|___________________
93+
| | |
94+
2 2(2)5 6(4)11 12(7)21
95+
| ^ ^
96+
3 3(3)4 7(5)8 9(6)10 13(8)16 17(10)20
97+
| |
98+
4 14(9)15 18(11)19
99+
100+
level Delete node == 4
101+
1 1(1)16
102+
_______________|_____
103+
| |
104+
2 2(2)5 6(7)15
105+
| ^
106+
3 3(3)4 7(8)10 11(10)14
107+
| |
108+
4 8(9)9 12(11)13
109+
110+
Update node
111+
-----------
112+
113+
```python
114+
node = session.query(Tree).filter(Tree.id == 8).one()
115+
node.parent_id = 5
116+
session.add(node)
117+
```
118+
119+
level Nested sets example
120+
1 1(1)22
121+
_______________|___________________
122+
| | |
123+
2 2(2)5 6(4)11 12(7)21
124+
| ^ ^
125+
3 3(3)4 7(5)8 9(6)10 13(8)16 17(10)20
126+
| |
127+
4 14(9)15 18(11)19
128+
129+
level Move 8 - > 5
130+
1 1(1)22
131+
_______________|__________________
132+
| | |
133+
2 2(2)5 6(4)15 16(7)21
134+
| ^ |
135+
3 3(3)4 7(5)12 13(6)14 17(10)20
136+
| |
137+
4 8(8)11 18(11)19
138+
|
139+
5 9(9)10
140+
141+
Move node (support multitree)
142+
-----------------------------
143+
144+
![Nested sets multitree](https://rawgithub.com/ITCase/sqlalchemy_mptt/master/docs/img/3_sqlalchemy_mptt_multitree.svg)
145+
146+
```python
147+
node = session.query(Tree).filter(Tree.id == 4).one()
148+
node.move_inside("15")
149+
```
150+
4 -> 15
151+
level Nested sets tree1
152+
1 1(1)16
153+
_______________|_____________________
154+
| |
155+
2 2(2)5 6(7)15
156+
| ^
157+
3 3(3)4 7(8)10 11(10)14
158+
| |
159+
4 8(9)9 12(11)13
160+
161+
level Nested sets tree2
162+
1 1(12)28
163+
________________|_______________________
164+
| | |
165+
2 2(13)5 6(15)17 18(18)27
166+
| ^ ^
167+
3 3(14)4 7(4)12 13(16)14 15(17)16 19(19)22 23(21)26
168+
^ | |
169+
4 8(5)9 10(6)11 20(20)21 24(22)25
170+
171+
```python
172+
node = session.query(Tree).filter(Tree.id == 8).one()
173+
node.move_after("5")
174+
```
175+
176+
level Nested sets example
177+
1 1(1)22
178+
_______________|___________________
179+
| | |
180+
2 2(2)5 6(4)11 12(7)21
181+
| ^ ^
182+
3 3(3)4 7(5)8 9(6)10 13(8)16 17(10)20
183+
| |
184+
4 14(9)15 18(11)19
185+
186+
level Move 8 after 5
187+
1 1(1)22
188+
_______________|__________________
189+
| | |
190+
2 2(2)5 6(4)15 16(7)21
191+
| ^ |
192+
3 3(3)4 7(5)8 9(8)12 13(6)14 17(10)20
193+
| |
194+
4 10(9)11 18(11)19
195+
196+
Move to top level
197+
198+
```python
199+
node = session.query(Tree).filter(Tree.id == 15).one()
200+
node.move_after("1")
201+
```
202+
203+
level tree_id = 1
204+
1 1(1)22
205+
_______________|___________________
206+
| | |
207+
2 2(2)5 6(4)11 12(7)21
208+
| ^ ^
209+
3 3(3)4 7(5)8 9(6)10 13(8)16 17(10)20
210+
| |
211+
4 14(9)15 18(11)19
212+
213+
level tree_id = 2
214+
1 1(15)6
215+
^
216+
2 2(16)3 4(17)5
217+
218+
level tree_id = 3
219+
1 1(12)16
220+
_______________|
221+
| |
222+
2 2(13)5 6(18)15
223+
| ^
224+
3 3(14)4 7(19)10 11(21)14
225+
| |
226+
4 8(20)9 12(22)13

0 commit comments

Comments
 (0)