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 originalfrom django.db import models
import os
#Funcion que crea una ruta dentro de la carpeta media
#con el nombre del archivo
def upload_path(instance, filename):
directorio = instance.articulos.nombre.lower()
#if directorio:
#return null
return os.path.join(directorio)
#else:
#return null
# Create your models here.
class Categoria(models.Model):
nombre = models.CharField(max_length=30)
class Articulo(models.Model):
nombre=models.CharField(max_length=30)
descripcion=models.CharField(max_length=700,blank=True)
precio=models.DecimalField(max_digits=100, decimal_places=2)
categorias=models.ManyToManyField(Categoria,blank=True)
class Imagen(models.Model):
articulos = models.ForeignKey(Articulo)
nombre = models.CharField(max_length=30,null=True,blank=True)
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