Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/09/2012, 12:47
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Referencia a la "clave unica" en el mismo modelo.

Cita:
Iniciado por WebDeveloperZ Ver Mensaje
Que tal, tengo el modelo categorias:

Código:
class Categorias(models.Model):
    padre_id = models.ForeignKey(Categorias)
    orden = models.IntegerField(max_length=2)
    titulo = models.CharField(max_length=150,'Título')
    
    class Meta:
        order_with_respect_to = 'orden'
Dado ese modelo necesito que el atributo padre_id apunte al id de esa misma tabla.

Es para tratar categorias y sub-categorias, si padre_id equivale a 0 significa que es una categoria padre, mientras que si es igual a un numero distinto de 0 es asi porque pertenece a una categoria con padre_id = 0
Ok aquí la explicación de por que esta mal (la parte en negritas).

Primero algunas propiedades:
Una categoría padre es cualquier categoría que tenga hijos.
Una categoría terminal es cualquier categoría que no tenga hijos.
Una categoría raíz es cualquier categoría que no tenga ID padre.
Una categoría padre es mutuamente excluyente de una categoría terminal.
Pero no son mutuamente excluyentes con una categoría raíz.

Explicación:
Una categoría (y en general cualquier registro) no se puede referenciar a menos que haya sido creado primero. ¿Como intentas refenciar al misma categoría si no ha sido creado en primera instancia?