如何解决失败的Django从ProcessedImageField迁移到FilerImageField
我目前有一个可重复使用图像的模型:
class Image(models.Model):
class Meta:
verbose_name = _('Image')
verbose_name_plural = _('Images')
name = models.CharField(
max_length=200,unique=False,blank=False,null=False,verbose_name=_('Image name')
)
full_size = ProcessedImageField(
upload_to='images/',processors=[ResizetoFit(height=450,upscale=False)],format='JPEG',options={'quality': 90},)
thumbnail = ImageSpecField(
source='full_size',processors=[Thumbnail(width=200,height=115,crop=True,options={'quality': 60}
)
def __str__(self):
return self.name
现在我正尝试从FilerImageField
移到django-filer
。
image = models.ForeignKey(
Image,on_delete=models.SET_NULL,verbose_name=_('Unit image'),null=True,blank=True
)
img = FilerImageField(
null=True,blank=True,related_name="unit_img",on_delete=models.DO_nothing,)
我进行了以下迁移:
# Generated by Django 3.1.2 on 2020-11-02 20:09
from django.db import migrations
from filer.models import Image
def migrate_unit_images(apps,schema_editor):
Units = apps.get_model('tageler','Unit')
for unit in Units.objects.all():
if unit.image:
img,created = Image.objects.get_or_create(
file=unit.image.full_size.file,defaults={
'name': unit.name,'description': unit.image.name,}
)
unit.img = img
unit.save()
class Migration(migrations.Migration):
dependencies = [
('tageler','0008_filer_create'),]
operations = [
migrations.RunPython(migrate_unit_images),]
我的问题是出现以下错误:
ValueError: Cannot assign "<Image: This is a test image>": "Unit.img" must be a "Image" instance.
我认为我只是创建或获取了图像。我在这里想念什么?为什么我新创建的Image不是“ Image”实例?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。