TypeError:get()为参数'task_id'获取了多个值

时间:2019-04-03 18:32:11

标签: python django

我有一个端点,该端点的ID为task/:task_id/。但是当我尝试访问端点中的ID时,出现此错误。 TypeError: get() got multiple values for argument 'task_id'

我试图给task_id参数一个默认值。

from huey.contrib.djhuey import HUEY
from rest_framework.views import APIView

class TaskStatus(APIView):
    def get(self, task_id):
        return Response({
            'result': Huey.result(task_id)
        })
    url(r'tasks/(?P<task_id>[a-f0-9\-]{36})/', TaskStatus.as_view(), name='task-status'),

我希望task_id从url参数返回ID。

2 个答案:

答案 0 :(得分:3)

key-three的第一个参数必须是get本身。更改

request

对此:

def get(self, task_id):
    ...

答案 1 :(得分:1)

您的get函数错误。收到错误消息的原因是该函数没有足够的参数,因为它也期望使用request参数。

由于有1个参数短,因此出现错误消息是因为它试图将requesttask_id都限制在task_id参数中,因此错误消息的“多个值”部分

这应该可以解决问题。

class TaskStatus(APIView):
    def get(self, request, task_id):
        return Response({
            'result': Huey.result(task_id)
        })