Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] problema con django mttp A node may not be made a child of any of its descendants

Estas en el tema de problema con django mttp A node may not be made a child of any of its descendants en el foro de Python en Foros del Web. cuando intento guardar el pariente superior en un hijo con django mttp me da el siguiente error Código: Exception Type: InvalidMove Exception Value: A node ...
  #1 (permalink)  
Antiguo 03/02/2013, 16:05
 
Fecha de Ingreso: diciembre-2011
Mensajes: 408
Antigüedad: 13 años
Puntos: 18
problema con django mttp A node may not be made a child of any of its descendants

cuando intento guardar el pariente superior en un hijo con django mttp me da el siguiente error

Código:
Exception Type:	InvalidMove
Exception Value:	
A node may not be made a child of any of its descendants.
alguien sabe como solucionarlo
  #2 (permalink)  
Antiguo 03/02/2013, 16:13
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: problema con django mttp A node may not be made a child of any of its desc

mttp funciona para guardar datos de manera jerárquica. De modo que que no tenga ciclos una instancia especial de un DAG.

Básicamente te estas topando con el problema clásico problema que un "nodo hijo, no puede ser padre de su propio nodo padre".

Por cierto, ¿Que estas intentado hacer?
  #3 (permalink)  
Antiguo 03/02/2013, 16:16
 
Fecha de Ingreso: diciembre-2011
Mensajes: 408
Antigüedad: 13 años
Puntos: 18
Respuesta: problema con django mttp A node may not be made a child of any of its desc

Cita:
Iniciado por razpeitia Ver Mensaje
mttp funciona para guardar datos de manera jerárquica. De modo que que no tenga ciclos una instancia especial de un DAG.

Básicamente te estas topando con el problema clásico problema que un "nodo hijo, no puede ser padre de su propio nodo padre".

Por cierto, ¿Que estas intentado hacer?
estoy intentando hacer un categoría en arboles pero veo que mttp es muy bueno para esto sirve para hacer arboles
  #4 (permalink)  
Antiguo 03/02/2013, 16:34
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: problema con django mttp A node may not be made a child of any of its desc

Me refería al código, no te podemos ayudar si no proporcionas algo de código que reproduzca el error que te aparece.
  #5 (permalink)  
Antiguo 03/02/2013, 16:57
 
Fecha de Ingreso: diciembre-2011
Mensajes: 408
Antigüedad: 13 años
Puntos: 18
Respuesta: problema con django mttp A node may not be made a child of any of its desc

Cita:
Iniciado por razpeitia Ver Mensaje
Me refería al código, no te podemos ayudar si no proporcionas algo de código que reproduzca el error que te aparece.
Código:
from django.db import models
from mptt.models import MPTTModel, TreeForeignKey

class Genre(MPTTModel):
    name = models.CharField(max_length=50, unique=True)
    parent = TreeForeignKey('self', null=True, blank=True, related_name='children')

    class MPTTMeta:
        order_insertion_by = ['name']

Última edición por razpeitia; 03/02/2013 a las 17:18
  #6 (permalink)  
Antiguo 03/02/2013, 17:22
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: problema con django mttp A node may not be made a child of any of its desc

Ese el código del tutorial y por cierto, funciona perfecto. No reproduce el problema.

Supongo que el problema esta en tu vista. O te da el problema cuando haces syncdb?
  #7 (permalink)  
Antiguo 03/02/2013, 18:31
 
Fecha de Ingreso: diciembre-2011
Mensajes: 408
Antigüedad: 13 años
Puntos: 18
Respuesta: problema con django mttp A node may not be made a child of any of its desc

Cita:
Iniciado por razpeitia Ver Mensaje
Ese el código del tutorial y por cierto, funciona perfecto. No reproduce el problema.

Supongo que el problema esta en tu vista. O te da el problema cuando haces syncdb?
intenta hacer esto

crea un nodo padre y luego crea tres dos nodos hijos luego selecciona al padre y asignalo a un hijo el sistema deberia cambiar los nodos
  #8 (permalink)  
Antiguo 03/02/2013, 18:32
 
Fecha de Ingreso: diciembre-2011
Mensajes: 408
Antigüedad: 13 años
Puntos: 18
Respuesta: problema con django mttp A node may not be made a child of any of its desc

Cita:
Iniciado por minimal Ver Mensaje
intenta hacer esto

crea un nodo padre y luego crea tres dos nodos hijos luego selecciona al padre y asignalo a un hijo el sistema deberia actualizar los nodos
  #9 (permalink)  
Antiguo 03/02/2013, 19:02
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: problema con django mttp A node may not be made a child of any of its desc

Cita:
Iniciado por minimal Ver Mensaje
intenta hacer esto

crea un nodo padre y luego crea tres dos nodos hijos luego selecciona al padre y asignalo a un hijo el sistema deberia cambiar los nodos
Si te refieres a hacer algo mas o menos asi:
Código:
from myapp.models import Genre

root = Genre.objects.create(name='root')
node1 = Genre.objects.create(name='Node 1', parent=root)
node2 = Genre.objects.create(name='Node 2', parent=root)
root.parent = node1
root.save() # Aqui falla. Y es normal que falle
Obviamente no vas a poder por que rompes con las propiedades de los arboles. Una de ellas es que no deben de tener caminos que sean ciclos.

Por ejemplo si trataras de verlo como categorías no tiene sentido.

Si estas intentando modelar que un articulo tenga mas de una categoría entonces puedes usar una relación ManyToMany y con eso bastara.

Te voy a ser sincero, no tengo claro que es lo que tratas de hacer, pero lo que estas haciendo actualmente no tiene sentido.

Tal vez esta lectura de como funciona mptt te podría orientar.
http://www.sitepoint.com/hierarchical-data-database/
  #10 (permalink)  
Antiguo 03/02/2013, 19:19
 
Fecha de Ingreso: diciembre-2011
Mensajes: 408
Antigüedad: 13 años
Puntos: 18
Respuesta: problema con django mttp A node may not be made a child of any of its desc

hehehe entiendo es verdad de echo eso estuve pensando probablemente la mejor opcion sea ocultar esos nodos y muchas gracias por tu atencion

Etiquetas: django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:10.