Python 复制到新模型实例时在django ImageField中保留url
我正在执行数据迁移,将图像从一个模型内部移动到它们自己的模型中Python 复制到新模型实例时在django ImageField中保留url,python,django,migration,django-south,imagefield,Python,Django,Migration,Django South,Imagefield,我正在执行数据迁移,将图像从一个模型内部移动到它们自己的模型中 class OldCrappyModel(models.Model): ... original_image = models.ImageField(upload_to=upload_original_image, null=True, blank=True) my_events_image = models.ImageField(upload_to=upload_my_promotions_image, n
class OldCrappyModel(models.Model):
...
original_image = models.ImageField(upload_to=upload_original_image, null=True, blank=True)
my_events_image = models.ImageField(upload_to=upload_my_promotions_image, null=True, blank=True)
...
class MyImage(models.Model):
original_image = models.ImageField(upload_to=upload_original_image, null=True, blank=True)
my_events_image = models.ImageField(upload_to=upload_my_promotions_image, null=True, blank=True)
...
upload\u to
方法只返回文件的唯一名称
当我迁移它们时(在南方数据迁移中):
问题是,我们有一些图像与新图像不在同一位置。当复制发生时,它将旧ImageField中的url转换为适用于新字段的url。例如:
old.url
出现在path/to/something/awesome.jpg
i.url
变成new/media/root/awesome.jpg
如何保存ImageField而在保存时不发生任何变化?如果可能的话,我希望不必制作所有文件的新副本。在迁移期间禁用
上传到。复制实例时,手动将上传设置为
迁移后,请重新启用它
i = MyImage(
my_events_image = old.my_events_image,
original_image = old.original_image,
)
i.save()