Django Rest Framework-对象没有属性发布

时间:2018-11-28 19:44:37

标签: python ajax django django-rest-framework

我的urls.py中有这个URL

 path('foo/bar/api', foo.APIBar.as_view(), name='foo-bar-api'),

在我的view.py中,我有一个用于处理api的类:

class APIBar(APIView):
def post(request, self, format=None):        
    date= request.POST['date']
    person= get_object_or_404(Person, id=request.POST['person'])  
    return Response(status=status.HTTP_201_CREATED)

我正在尝试发送此ajax:

$.ajax({
            url: "{% url 'foo-bar-api' %}",
            method: "POST",
            data: {
                date: date.val(),
                person: person.val()
            }
        });

但是Django,这是我遇到的错误:

AttributeError: 'APIBar' object has no attribute 'POST'

我不知道为什么会这样。我在其他模型中使用了相同的结构,并且像一个吊饰一样工作,但是这给了这个错误。

请,你能告诉我我在做什么错吗?我花了几个小时试图修复此错误。

1 个答案:

答案 0 :(得分:4)

您的post方法的参数安排有误,正确的参数应为:

def post(self, request, format=None):
    date= request.POST['date']
    person= get_object_or_404(Person, id=request.POST['person'])  
    return Response(status=status.HTTP_201_CREATED)

顺便说一句,self在这里表示对象引用。因此,它应该是对象方法的第一个参数。