我正在尝试使用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的专家,请帮忙。
答案 0 :(得分:1)
在此处查看:https://github.com/czue/celery-progress/issues/27
这意味着任务 ID 为空。解决它的最佳方法是尝试找出为什么它是空白的。这可能是因为您的后端未正确配置,因此未从异步调用分配/返回 ID,因为您没有将其从视图正确传递到模板,因为您在模板中引用了错误的变量等
我建议您深入了解 ID 为空的原因,这有望引导您找到合适的解决方案。
答案 1 :(得分:0)
您必须将celery_progress的网址映射添加到您的主urls.py中。项目自述文件的“先决条件”部分对此进行了描述。