3

我在为 imageField 设置动态路径时遇到问题。

这是我的models.py

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 方法来自定义 upload_to。

问题是我使用 South 并且管理自定义字段非常困难

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

谢谢

4

2 回答 2

1

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

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
于 2013-07-21T21:15:10.270 回答
0

我认为您可以使用Unipath离开这里。

单路径使用

于 2013-07-20T09:03:51.967 回答