views:

73

answers:

1

Given

class Category(db.Model):
   name = db.Stringproperty()

Say I have a nested hierarchy

-root
 -a
  -b
   c
 -x
  -y
   z1
   z2

where a's parent is f, b's parent is a, c's parent is b etc.

Is there a simple way by which I could move node y from x to b such that y, z1 and z2 continue to remain children of x & y respectively.

That would mean I simply change y's parent.

However, if that is not possible than it would require

  1. creating a new record ny = Category(parent=b, name=y) and
  2. recursively for each child of y creating a new record that has ny as a parent and
  3. than deleting y and its children.
+1  A: 

The parent relationship is encoded in an entity's key, and the key is immutable once created, so no, you can't change the key of an existing entity. In order to do so, you need to reinsert all the relevant items with new keys.

Nick Johnson