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)

これは私がここで見つけた解決策です

これは実際にはオブジェクトを更新するときに正常に機能しますが、新しい要素を挿入しようとすると、その瞬間に自己が存在しないため、挿入が失敗します。

ここで別のソリューションを試しましたが、その提案は ImageField メソッドをオーバーライドして upload_to をカスタマイズしています。

問題は、私が South を使用していて、カスタム フィールドの管理が非常に難しいことです。

私はジャンゴ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 に答える