Django rest framework detail_route在get方法中不工作

2024-10-08 18:30:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用ModelViewSet定义了一个视图集,如下所示

我尝试使用redefine方法来做一些事情,比如从芹菜中获取一些东西。但是这部分代码不起作用,它的作用就像一个标准的API,而不是我在get_job_detail函数中写的那样。在

如何正确定义“detail_route”功能。在

在视图.py在

class JobViewSet(viewsets.ModelViewSet):
    queryset = job.objects.all()
    serializer_class = JobSerializer

    @detail_route(methods=['get'])
    def get_job_detail(self, request, pk=None):
        # print('these part wont proceed')
        job_item = self.get_object()
        if job_item.isReady or job_item.isSuccessful:
            return Response(self.serializer_class(job_item).data)
        celeryjob = sometask.AsyncResult(pk)
        celeryjob.get()
        if celeryjob.state == 'SUCCESS':
            job_item.state = celeryjob.state
            job_item.result = celeryjob.result
            job_item.isReady = True
            job_item.isSuccessful = True
            job_item.save()
        if celeryjob.state == 'FAILURE':
            job_item.state = celeryjob.state
            job_item.result = celeryjob.result
            job_item.isReady = True
            job_item.isSuccessful = False
            job_item.save()
        return Response(self.serializer_class(job_item).data)

在网址.py在

^{pr2}$

Tags: selftruegetifjobresultitemclass

热门问题