如何解决在迁移时触发 VersatileImageFieldWarmer 的 Django 信号
正如 django-versatileimagefield docs 所述,我有一些 post_save
信号可以“在模型实例保存后立即创建新图像”。
示例:
@receiver(models.signals.post_save,sender=VendorImage)
def warm_vendor_images(sender,instance,**kwargs):
warmer = VersatileImageFieldWarmer(
instance_or_queryset=instance,rendition_key_set=settings.VERSATILEIMAGEFIELD_RENDITION_KEY_SETS['default'],image_attr='image',verbose=True
)
warmer.warm()
当我上传图像甚至创建我的灯具时,这很好用。但是,我在迁移中使用 RunPython
填充了两个模型。
示例:
eventCategories = {
"Poolparty": 'Poolparty.png',...
}
...
def AddEventCategories(apps,schema_editor):
model = apps.get_model('sp_event','EventCategory')
for key in eventCategories:
imagePath = upload_to + eventCategories[key]
model.objects.create(name=key,image=imagePath)
...
migrations.RunPython(AddEventCategories)
我想知道 create()
方法是否调用 save()
来触发信号,但为了 100% 确定,我在创建实例后调用了 save()
:信号不是也触发了。
在迁移中使用 VersatileImageFieldWarmer 也会导致错误 (AttributeError: 'ImageFieldFile' object has no attribute 'thumbnail'
)。
如何确保在迁移过程中创建实例时创建了我的大小图像?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。