Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/12/2011, 04:59
cagarnera
 
Fecha de Ingreso: diciembre-2011
Mensajes: 7
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Crear modelos que dependen de otros

Problema solucionado. Si a alguien le interesa. El problema estaba en como había definido los modelos (ya lo sabía, pero no entendía que hacía mal).

Como estaba definido, no se podía crear una imagen sin crear primero un artículo (esto es lo que pretendía) pero no podía crear un artículo pues para crearlo necesitaba crear una imagen (que no se podía porque aún no había creado el artículo) y así hasta el infinito (y más alla )

La solución es así:

Código Python:
Ver original
  1. from django.db import models
  2. import os
  3.  
  4.  
  5. #Funcion que crea una ruta dentro de la carpeta media
  6. #con el nombre del archivo
  7.  
  8. def upload_path(instance, filename):
  9.     directorio = instance.articulos.nombre.lower()
  10.     #if directorio:
  11.         #return null
  12.     return os.path.join(directorio)
  13.     #else:
  14.         #return null
  15.  
  16.  
  17.  
  18. # Create your models here.
  19. class Categoria(models.Model):
  20.     nombre = models.CharField(max_length=30)
  21.  
  22. class Articulo(models.Model):
  23.     nombre=models.CharField(max_length=30)
  24.     descripcion=models.CharField(max_length=700,blank=True)
  25.     precio=models.DecimalField(max_digits=100, decimal_places=2)
  26.     categorias=models.ManyToManyField(Categoria,blank=True)
  27.  
  28.  
  29. class Imagen(models.Model):
  30.     articulos = models.ForeignKey(Articulo)
  31.     nombre = models.CharField(max_length=30,null=True,blank=True)
  32.     foto = models.ImageField(upload_to=upload_path,null=True,blank=True)

ForeignKey debe de estar en Imagen y no en Artículo.

Es una tontería lo se, pero me ha dado más de un dolor de cabeza resolverlo

Última edición por cagarnera; 16/12/2011 a las 05:09