【问题标题】:Dynamic File Path in Django and SouthDjango 和 South 中的动态文件路径
【发布时间】:2013-07-19 22:58:06
【问题描述】:

我在为 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。

问题是我用的是 South 很难to manage custom fields

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

谢谢

【问题讨论】:

    标签: python django dynamic path django-south


    【解决方案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
    

    【讨论】:

      【解决方案2】:

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

      Unipath usage

      【讨论】:

        猜你喜欢
        • 2011-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-02
        • 1970-01-01
        • 2017-03-24
        相关资源
        最近更新 更多