Есть ли способ перехватить все сигналы post_save (инициированные из текущего запроса) и проверить, когда все они завершены? Если все post_save завершены, запустите функцию final.
Пример:
from django.db import models
from django.db.models.signals import post_save
from django.dispatch import receiver
@receiver(post_save, sender=Model1)
@receiver(post_save, sender=Model2)
@receiver(post_save, sender=Model3)
def example_function(sender, instance, created, **kwargs):
if created and isinstance(instance, Model1):
run_model1_fun()
if created and isinstance(instance, Model2):
run_model2_fun()
if created and isinstance(instance, Model3):
run_model3_fun()
#IF all post_save completed
run_final()