我想在我的视图中获得api body参数。我要应用搜索过滤器。我正在使用self.request.GET.get('query'),但它总是给none。我如何从邮递员那里得到身体参数,我在身体中发送query:Active。但我不明白
class JobsListAPIView(generics.ListAPIView):
    serializer_class = JobListSerialzer
    # pagination_class = ListLimitOffsetPagination
    permission_classes = [UserIsAuthenticated]
    def get_queryset(self, *args, **kwargs):
        # print('self.request.auth', self.request.auth.application.user.userprofile.user_company.id)
        qs = Jobs.objects.exclude(job_is_deleted = True).filter(
            job_company = self.request.auth.application.company
        )
        query = self.request.GET.get('query')
        print('query: ', request.data)
        if query:
            qs = qs.filter(job_status=query)
        return qs发布于 2019-02-18 10:54:51
您的实际问题似乎没有接受查询param(body data)。但你没有把它正确传递出去。您应该传递/your-url/?query=Active(替换: with = )。当您传递query:Active时,它将整个"query:Active“作为主体中的一个键。
发布于 2019-02-18 10:14:50
为了获得身体参数,我假设您使用POST方法来请求api。获取POST数据与self.request.POST.get('query')一样简单
发布于 2019-02-18 10:23:40
在纯Django中,获取主体内容的方法是使用request.POST,获得查询params的方法是使用request.GET。由于您似乎在使用Django rest框架视图,因此建议使用它的request.data和request.query_params。
假设邮递员发送的数据格式正确,那么在本例中,您可以使用:
query = self.request.data.get("query")https://stackoverflow.com/questions/54744678
复制相似问题