将表单数据传递给芹菜任务

时间:2021-06-19 10:57:14

标签: django

我的视图中有一个简单的表单(没有模型),我在其中捕获用户键入的输入以发送电子邮件。我用以下方法捕获这些输入:

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
   ...

1 个答案:

答案 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
   ...