我正在关注Django 2.0的Django REST框架教程,http://www.django-rest-framework.org/tutorial/2-requests-and-responses/。但是,当我添加@api_view
装饰器时,我在视图上执行GET时得到403.
GET /attendance/api/youths/
HTTP 403 Forbidden
Allow: OPTIONS, GET
Content-Type: application/json
Vary: Accept
{
"detail": "Invalid username/password."
}
这是我的代码。
@api_view(['GET'])
def youths_json(request, format=None):
youths = Youth.objects.filter(attending=True)
serializer = YouthSerializer(youths, many=True)
return Response(serializer.data)
当我添加AllowAny权限时,它仍然无效。
@permission_classes((AllowAny, ))
有什么想法吗?我想让这个工作,我真的想使用ListAPIView
。
答案 0 :(得分:2)
您忘记添加authentication_classes。使用必要的类添加@authentication_classes()。允许没有身份验证的用户使用空元组。
答案 1 :(得分:0)
装饰者的顺序很重要。
@api_view(['GET'])
@permission_classes((AllowAny, ))
def youths_json(request):
# code here