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()