Django сигнализирует о запуске универсального поля при миграции

#django #django-signals

Вопрос:

У меня есть несколько post_save сигналов «создавать новые изображения сразу после сохранения экземпляров модели», как указано в документах django-versatileimagefield.

Пример:

 @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' ).

Как я могу гарантировать, что изображения моего размера будут созданы при создании экземпляров во время процесса миграции?