我的视图中有一个简单的表单(没有模型),我在其中捕获用户键入的输入以发送电子邮件。我用以下方法捕获这些输入:
if result['success']:
name = form.cleaned_data['name']
email = form.cleaned_data['email']
...
send_email_task()
问题是,我如何将该数据传递给 Celery send_email_task 以发送它。类似的东西:
@shared_task
def send_email_task():
send_mail(name + ': ' + subject,
'From: ' + email
...
答案 0 :(得分:0)
根据documentation,有两种异步调用celery任务的方式,.delay()
和.apply_async()
。由于您不需要传递任何特殊配置,我将使用 .delay
。
if result['success']:
name = form.cleaned_data['name']
email = form.cleaned_data['email']
...
send_email_task.delay(name, email)
@shared_task
def send_email_task(name, email):
send_mail(name + ': ' + subject,
'From: ' + email
...