失败的Django从ProcessedImageField迁移到FilerImageField

如何解决失败的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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?