我在设置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)
这是我找到的解决方案here
这在更新对象时实际上工作正常,但是当我尝试插入新元素时,插入失败,因为在那一刻self不存在。
我尝试了另一个解决方案here,其建议是重写ImageField方法来自定义upload_to。
问题是我使用南方而且很难to manage custom fields
我使用Django 1.5。我想知道是否存在任何简单的方法来管理django中的动态文件路径
由于
答案 0 :(得分: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
答案 1 :(得分:0)
我认为你可以通过Unipath离开这里。