Existe uma maneira fácil de alterar o pai de um registro no google datstore app engine
-
03-07-2019 - |
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
- criação de um novo
ny = Category(parent=b, name=y)
registro e - recursivamente para cada criança de
y
criar um novo registro que temny
como um pai e - do que
y
exclusão e seus filhos.
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