Django rest框架以编程方式从另一个视图调用视图集传递认证头

时间:2015-09-25 11:10:03

标签: django authentication view django-rest-framework

我试图用Django Rest Framework drf调用api。我的情况是我想从另一个视图调用api获取响应并在模板中显示数据。我已经提到this SO post,但由于我的视图集需要身份验证,因此无法成功调用。如果使用url调用,则Viewset工作正常,这是默认方式。视图集如下

class ViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows Objects to be viewed or edited.
    """
    permission_classes = (permissions.IsAuthenticated,)
    queryset = Myclass.objects.all()
    serializer_class = MyclassSerializer
    ....
    ....
    return response(json)

从另一个视图调用此api时,我得到的响应是来自drf api的401 page

 ipdb>view = Myview.as_view({'get':'list'}
 ipdb>obj=view(request, *args, **kwargs)
 ipdb> obj.data
 {u'detail': u'Authentication credentials were not provided.'}
 ipdb>obj.has_header('Authentication')
 False 

我也尝试过传递身份验证标头,但我不知道它是否正确。

  view = MyViewSet.as_view({'get':'list'},{'token':'token'})

返回错误参数令牌不被接受。我试过了

view = MyViewSet.as_view({'get':'list'},Authentication={'token':'token'})

但是这也给我带来了错误。如何通过传递auth params从另一个视图调用api视图集?

TIA

0 个答案:

没有答案