0

我正在从旧站点迁移到新站点,这包括移动大量徽标/图像/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)

谁能告诉我这里出了什么问题?

4

1 回答 1

1

您的file_path函数没有返回目录名称。它正在返回“c_obj13.jpg”(self.id13 时)。因此,没有目录(注意没有目录分隔符)。

于 2013-05-06T13:30:07.333 回答