You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django-Celery任务调用报错:缺少位置参数/NoneType无delay属性

问题原因及解决方法

两个错误的核心原因:视图中任务调用方式错误

  • 第一个错误 missing 1 required positional argument:
    你在views.py里写了tasks.say_hello_task().delay("john"),这里的say_hello_task()是直接执行任务函数本身,而非获取Celery任务对象。此时函数需要传入name参数,但你没传,因此触发参数缺失错误。

  • 第二个错误 NoneType' object has no attribute 'delay':
    当你改成无参任务后,say_hello_task()执行后没有返回值(print语句不会返回内容),得到的结果是None。接着对None调用.delay()方法,自然会出现该错误。

正确的调用方式

调用Celery任务的.delay()方法时,不要给任务函数加括号,直接通过任务对象调用.delay()并传入参数:

tasks.say_hello_task.delay("john")

注:Worker能正常识别任务,说明任务注册流程是正常的,问题完全出在视图里的调用逻辑错误。

内容的提问来源于stack exchange,提问作者ParsaAi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 20:13:15