【发布时间】:2014-05-07 16:33:53
【问题描述】:
我最近更改了 FileField 的 upload_to 参数,现在我正在尝试编写 South datamigration 将存储在旧系统下的文件移动到新系统。我写了一些 FileField 文档表明应该可以工作的代码:
def forwards(self, orm):
for mf in orm.ManagedFile.objects.all():
print mf.content.path
oldpath = mf.content.path
cf = ContentFile(mf.content.read())
cf.name = oldpath
mf.content = cf
mf.save()
这会根据一些默认规则保存所有文件,并且它们最终都会在 MEDIA_ROOT 中松散,而不是在 upload_to 函数指示的位置。
经过一番思考,我明白了为什么会这样,但我能做些什么呢?
【问题讨论】:
-
在我询问后不久,我在stackoverflow.com/q/6968789/8508 找到了答案。我将把它留在这里,因为对于 FileField 有问题的人来说更容易找到它。 (ImageField 是一个子类)
标签: python django django-south