Django повторное выполнение сигнала как созданный

У меня запущен сигнал при сохранении некоторой модели DiseaseCase:

@receiver(post_save, sender=DiseaseCase)
def add_or_edit_map_feature(sender, instance, created, **kwargs):
    ...
    if created:
        do_something()

Если я обновляю некоторые поля одного экземпляра модели DiseaseCase с помощью Django Shell или Django Admin do_something() не запускается, так как экземпляр редактируется, но не создается. Есть ли способ отредактировать экземпляр, но заставить значение created быть true, чтобы повторно запустить код?

Вы можете использовать else или if not created

 @receiver(post_save, sender=DiseaseCase)
    def add_or_edit_map_feature(sender, instance, created, **kwargs):
        ...
        if created: #this signals will be triggered when created any object 
            do_something()
        else: #add your logic for do somethings  

Я решил эту проблему, просто создав дубликат записи. Что отлично работает в моем случае.

from d_database.models import DiseaseCase

instances = DiseaseCase.objects.all()
for instance in instances:
    instance.id = None
    instance.save()
Вернуться на верх