Pergunta

Dada

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

dizer que tenho uma hierarquia aninhada

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

, onde o pai de a é root, pai de b é a, pai de c é b etc.

Existe uma maneira simples através do qual eu poderia mover nó y de x para b tal que z1 e z2 continuam a ser filhos de y:

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

Isso significaria que eu simplesmente mudar controladora da y.

No entanto, se isso não for possível do que seria necessário

  1. criação de um novo ny = Category(parent=b, name=y) registro e
  2. recursivamente para cada criança de y criar um novo registro que tem ny como um pai e
  3. do que y exclusão e seus filhos.
Foi útil?

Solução

A relação pai é codificado em chave de uma entidade, ea chave é imutável, uma vez criado, de modo nenhum, você não pode alterar a chave de uma entidade existente. A fim de fazer isso, você precisa reinserir todos os itens relevantes com novas chaves.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top