2013-07-19 58 views
3

我在設置動態路徑到我的imageField時遇到問題。Django和South中的動態文件路徑

這是我的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

更新對象時,這實際上是正常工作的解決方案,但是當我嘗試插入新的元素,插件失敗,因爲在那一刻自我不存在。

我試過另一個解決方案here,他的提議是重寫ImageField方法來自定義upload_to。

的問題是,我使用南這是相當困難的to manage custom fields

我使用Django 1.5。我想知道是否存在任何簡單的方法來管理動態文件路徑在Django

感謝

回答

1

或者你可以重寫保存方法將文件移動到正確的路徑。

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