2011-12-21 58 views
1

覆蓋比方說,我有很多車型那樣:全球upload_to在Django

class ExampleModel(models.Model): 
    photo = models.ImageField(upload_to='photos/') 
    image = models.ImageField(upload_to='images/') 

class AnotherExampleClass(models.Model): 
    another_image = models.ImageField(upload_to='another_images/') 

所以,它與ImageFields許多不同的模式,其具有不同的字段名。我想,就是以某種方式覆蓋所有upload_to這樣的:

upload_to = '%s/%s' % (upload_to, self.id) 

舉例來說,如果我上傳圖片another_image領域,文件路徑將是:

'another_images/1/picture.jpg' 

我意識到我需要創建一些CustomImageField基於models.ImageField。但是,如何以最小的痛苦達到目標?

+0

請參閱http://stackoverflow.com/questions/8535189/django-imagefield-how-to-make-upload-to-parameter-dependent-on-self-id/8535432和https:// docs .djangoproject.com/en/dev/topics/http/file-uploads /#basic-file-uploads和http://stackoverflow.com/questions/1190697/django-filefield-with-upload-to-determined-at-運行時 – 2011-12-21 08:41:17

回答

2

upload_tocan be a callable。你知道下一步該怎麼做。 :-)

+0

可以在可調用的upload_to中獲取字段名稱? – nukl 2011-12-21 08:50:46

+0

@nukl不,不是。但是yiu可以讓工廠爲每個領域返回特殊功能。 – DrTyrsa 2011-12-21 08:52:55