Сигналы 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)