Django Rest Framework-对象没有属性post



我的urls.py 中有这个url

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

在我的视图.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'

我不知道为什么会发生这种事。我在其他模型中使用了相同的结构,效果很好,但这次却出现了这个错误。

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

您的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)

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

最新更新