Celery-Progress-Bar在Django中不起作用

时间:2018-10-22 20:57:10

标签: python django progress-bar celery django-celery

我正在尝试使用celery-progress模块​​向用户显示任务的进度,因为完成任务需要大量时间。但是,按照https://github.com/czue/celery-progress上的说明进行操作后,我在前端看到以下错误:-

NoReverseMatch at /netadc/arista/views/getFabListArista/TRCW/ Reverse for 'task_status' with arguments '('',)' not found. 1 pattern(s) tried: [u'celery_progress/(?P<task_id>[\\w-]+)/$'] Request Method: GET Request URL: http://x.x.x.x/netadc/arista/views/getFabListArista/TRCW/ Django Version: 1.11 Exception Type: NoReverseMatch Exception Value:
Reverse for 'task_status' with arguments '('',)' not found. 1 pattern(s) tried: [u'celery_progress/(?P<task_id>[\\w-]+)/$']

前端var progressUrl = "{% url 'celery_progress:task_status' task_id %}";上的URL模式不起作用。 当我将其更改为var progressUrl = "{% url 'celery_progress:task_status' 'task_id' %}";时,我没有收到错误,但是没有任何任务在运行。

任何有关django / python的专家,请帮忙。

2 个答案:

答案 0 :(得分:1)

在此处查看:https://github.com/czue/celery-progress/issues/27

这意味着任务 ID 为空。解决它的最佳方法是尝试找出为什么它是空白的。这可能是因为您的后端未正确配置,因此未从异步调用分配/返回 ID,因为您没有将其从视图正确传递到模板,因为您在模板中引用了错误的变量等

我建议您深入了解 ID 为空的原因,这有望引导您找到合适的解决方案。

答案 1 :(得分:0)

您必须将celery_progress的网址映射添加到您的主urls.py中。项目自述文件的“先决条件”部分对此进行了描述。