问题描述
我目前有一个可重复使用图像的模型:
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 (将#修改为@)