Сигналы Django не запускаются при сохранении из интерфейса администратора

Я настроил некоторые сигналы Django на pre_delete, post_save а также pre_delete приемники для некоторых моделей, которые хранятся в signals.py файл в той же упаковке, что и модели.

Сохранение из вызова API или непосредственно в терминале запускает сигналы, но при сохранении из панели администратора они не запускаются. Я импортировал сигналы в ready() метод AppConfig который ничего не меняет.

Любая помощь по этому вопросу?

PS: используя django-oscar, если это поможет.

from django.db.models.signals import post_delete, post_save, pre_delete

from django.dispatch import receiver

from oscar.core.loading import get_model

MyModel = get_model('mypackage', 'MyModel')

@receiver(post_save, sender=MyModel)
def do_stuff(sender, instance=None, created=False, **kwargs):
    update_stuff()

1 ответ

была аналогичная проблема. Моя проблема заключалась в том, чтобы загрузить изображение в другое место назначения после сохранения модели через администратора. Решил это, внедрив класс Admin в admin.py, например, если у вас есть модель, а именно Shop, тогда в вашем admin.py будет как

      @admin.register(Shop)
class ShopAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        instance = form.instance
        instance.save()
        image_path = instance.banner_image.path
        move_image(image_path)
Другие вопросы по тегам