我正在从旧站点迁移到新站点,这包括移动大量徽标/图像/PDF 等。在旧站点上,我使用 base64 编码导出这些内容,并在新站点上对它们进行 base 64 解码。到目前为止,一切都很好。一切似乎都刚刚好。
但是,由于某种原因,这些文件最终出现在我的 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)
谁能告诉我这里出了什么问题?