包括额外的上下文值 django rest 框架

Bis*_*rai 1 python django django-rest-framework

我正在使用 Django 休息框架。我需要传递一些额外的上下文值作为响应,但没有得到 extra_value 作为响应。

class ResultRowView(generics.ListAPIView):
    serializer_class    = ResultRowSerializer
    permission_classes  = (AccountPermission, )

    def get_serializer(self, *args, **kwargs):
        context = {'extra_value': 5000}
        return self.serializer_class(*args, context=context, **kwargs)

    def get_queryset(self):
        qs = ResultRow.objects.none()
        pk = self.kwargs.get('pk', None)
        try:
            route = IncomingRoute.objects.get(account=self.request.user.account, pk=pk)
            qs = route.app_module.rows.all()
        except Exception, e:
            print 'result_row_query: ', e
        return qs
Run Code Online (Sandbox Code Playgroud)

这里缺少什么?

Anu*_*dra 6

您可以通过覆盖 list 方法来做到这一点,例如:

def list(self, request, *args, **kwargs):
    response = super(ResultRowView, self).list(request, args, kwargs)
    response.data[ 'extra_value' ] = 5000
    return response
Run Code Online (Sandbox Code Playgroud)