Как отправлять электронные письма в django с помощью asyncio?

Я пытаюсь асинхронно отправлять электронные письма в Django с помощью asyncio, но приведенный ниже код у меня не работает.

async def new(request):
    if request.user.profile.role == 'sa' or request.user.profile.role == 'e':
        if request.method == "GET":
            raise Http404

        elif request.method == "POST":
            form = TaskForm(request.POST)

            if form.is_valid():
                task =form.save()
                
                subject = "New Task"
                message =render_to_string('new_task_email.html', {
                    'task' : task
                })
                user =await sync_to_async(User.objects.get)(id = task.assign_to.id)
                send_mail_async = sync_to_async(user.email_user)
                asyncio.create_task(send_mail_async(subject, message , EMAIL_HOST_USER))

                messages.success(request,"New Task has ceated")
            else:
                messages.warning(request,"Please Enter a valid data")

            return redirect('tasks')
    else:
        raise Http404

но всякий раз, когда создается новое задание и затем отправляется почта пользователю, возникает эта ошибка.

SynchronousOnlyOperation at /work_order_panel/tasks/new/
You cannot call this from an async context - use a thread or sync_to_async.

полная ошибка трассировки

действительно ли я должен использовать sync_to_async, когда я получаю пользователя из базы данных или просто использовать его в user.send_email

Вернуться на верх