Python Django和South中的动态文件路径

Python Django和South中的动态文件路径,python,django,dynamic,path,django-south,Python,Django,Dynamic,Path,Django South,设置imageField的动态路径时遇到问题 这是我的模特 class Imagen(models.Model): def get_upload_path(self, filename): return os.path.join( "img/experiencias/experiencia_%d" % self.id_experiencia.id, 'ficha' + '_' + filename) nombre = models.CharField(max_length=50) i

设置imageField的动态路径时遇到问题

这是我的模特

class Imagen(models.Model):

def get_upload_path(self, filename):
  return os.path.join(
  "img/experiencias/experiencia_%d" % self.id_experiencia.id, 'ficha' + '_' + filename)

nombre = models.CharField(max_length=50)
id_experiencia = models.ForeignKey(TipoExperiencia)
imagen = models.ImageField(upload_to= get_upload_path)
caption = models.CharField(max_length=150,blank=True)
alt = models.CharField(max_length=100)
这是我找到的解决方案

当更新对象时,这实际上可以很好地工作,但是当我尝试插入新元素时,插入失败,因为在那一刻self不存在

我尝试了另一个解决方案,其建议是覆盖ImageField方法,以自定义上载到

问题是我用的是南方,这很难

我使用Django 1.5。我想知道在django中是否存在管理动态文件路径的简单方法


谢谢

我想你可以在这里逍遥法外


或者,您可以覆盖保存方法,将文件移动到正确的路径

class Model(models.Model):
  def save(self, *args, **kwargs):
    instance = super(Model, self).save(*args, **kwargs)
    # your logic here to change the file location
    return instance