Помните, что ваша асинхронная задача должна быть декоратором @shared_task.для вызова извне, так как он не будет привязан к конкретному экземпляру приложения. Документация @shared_task сельдерея
task.py
@shared_task
def send_email(email):
# Do logic for sending email or other task
signal.py
asниже вы можете увидеть, что это будет выполняться только тогда, когда post_save (после того, как пользователь выполнит сохранение) для модели Contract в вашем случае будет любой другой моделью, которую он выполняет.
@receiver(post_save, sender=Contract)
def inflation_signal(sender, **kwargs):
if kwargs['created']:
send_email.delay('mymail@example.com')