@@ -366,17 +366,13 @@ def save(self, *args, **kwargs):
366
366
367
367
super (NestedIntervalsModel , self ).save (* args , ** kwargs )
368
368
369
- save .alters_data = True
370
-
371
369
def delete (self , * args , ** kwargs ):
372
370
"""Calling ``delete`` on a node will delete it as well as its full
373
371
subtree, as opposed to reattaching all the subnodes to its parent node.
374
372
375
373
``delete`` will not return anything. """
376
374
self .get_descendants (include_self = True ).delete ()
377
375
378
- delete .alters_data = True
379
-
380
376
def _get_user_field_names (self ):
381
377
""" Returns the list of user defined (i.e. non-nested_intervals internal) field names. """
382
378
field_names = []
@@ -385,3 +381,12 @@ def _get_user_field_names(self):
385
381
if (field .name not in internal_fields ) and (not isinstance (field , AutoField )) and (not field .primary_key ):
386
382
field_names .append (field .name )
387
383
return field_names
384
+
385
+ def print_tree (self , indent = 0 ):
386
+ print ("{indent}{name} ({left}, {right})" .format (
387
+ indent = " " * indent ,
388
+ name = getattr (node , "name" , node .id ),
389
+ left = node .left ,
390
+ right = node .right ))
391
+ for child in node .get_children ():
392
+ self .print_tree (child , indent + 1 )
0 commit comments