Как отправить электронное письмо в post_save, не прося пользователя дождаться отправки формы? - PullRequest
0 голосов
/ 30 мая 2020

Вот мой метод post_save:

from asgiref.sync import sync_to_async

@receiver(post_save, sender=SubmissionDetails)
def create_submission_email(sender, instance, created, **kwargs):
    if created:
        data = sync_to_async(call_submssion_email(instance))

def call_manuscript_submssion_email(instance):
    print("Hi")
    message = '''Submitted with the title, <br>
    {0}'''.format(instance.title)
    subject = 'Article Submitted'
    to_address = 'example@gmail.com'
    from_address = "from@mail.example.com"
    msg = EmailMessage(
                    subject, message,from_address,[to_address]
                    )
    msg.content_subtype = "html"
    msg.send()

Проблема в том, что при отправке формы пользователь должен дождаться отправки электронной почты, чтобы увидеть результаты. Я использую django 3.0 с некоторой поддержкой asyn c.

1 Ответ

1 голос
/ 30 мая 2020

Поддержка асинхронного режима

Новое в Django 3.0

Django имеет развивающуюся поддержку асинхронного («асинхронного» ) Python, но еще не поддерживает асинхронные представления или промежуточное ПО; они появятся в следующем выпуске.

Есть ограниченная поддержка других частей экосистемы asyn c; а именно, Django может изначально говорить ASGI, и некоторая поддержка безопасности asyn c.

Django Официальная поддержка асинхронного режима


Вы можете использовать Django Каналы или Сельдерей для вашего асинхронного кода.

Вы также можете проверить Как Django каналы отличается от сельдерея?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...