在使用celery创建异步任务的时候,有一个需求是获取现在项目中所有的task名称,看了代码中有写好的接口,但是返回值没有数据,这个要怎么修复?
前端请求:
// 获取所有 tasks 名称
SyncDataApi.TasksAsChoices().then((response) => {
this.tasks_as_choices = response.data || [];
});
// 获取所有 tasks 名称
export function TasksAsChoices(params) {
return request({
url: `${sync_data_prefix}/tasks_as_choices/`,
method: "get",
params
});
}
接口路由url:
获取所有 tasks 名称
url(r'^tasks_as_choices/', TasksAsChoices.as_view()),
API视图:
class TasksAsChoices(APIView):
def get(self, request):
"""
获取所有 tasks 名称
:param request:
:return:
"""
lis = []
def get_data(datas):
for item in datas:
if isinstance(item, (str, int)) and item:
lis.append(item)
else:
get_data(item)
get_data(TaskSelectWidget().tasks_as_choices())
return SuccessResponse(list(set(lis)))
返回结果:
{"code":200,"data":[],"msg":"success","status":"success"}
v1.1.1