0
我正在從舊網站遷移到新網站,這包括移動大量徽標/圖片/ PDF等。在舊網站上,我使用base64編碼導出這些文件,而我的基礎版64則在新網站上對它們進行解碼。到現在爲止還挺好。一切似乎都行得通。Django「手動」上傳的文件不會將upload_to加入帳戶
但是,由於某些原因,文件結束了我的MEDIA_ROOT而不是MEDIA_ROOT /。所以這意味着我的MEDIA_ROOT中有幾千個文件,並不好。
的代碼的位:
ntf = NamedTemporaryFile(delete=True)
ntf.write(base64.standard_b64decode(obj['logo']))
ntf.flush()
c.logo.save('photo-{0}.img'.format(c.id), File(ntf))
在這種情況下,c
是一個Django模型實例,並logo
是ImageField的。 Django的模型c
的定義:
class C(models.Model):
def file_path(self, filename=None):
return (format(self.id).join(['c_obj', '.jpg'])).lower()
name = models.CharField(_(u'name'), max_length=150)
logo = models.ImageField(_(u'logo'), upload_to=file_path, null=True, blank=True)
任何人誰可以告訴我這是怎麼回事錯在這裏?