我想在我的视图中获取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
答案 0 :(得分:2)
为了获取主体参数,我假设您正在使用POST方法来请求api。获取POST数据非常简单,self.request.POST.get('query')
答案 1 :(得分:1)
您的实际问题似乎不包含查询参数(正文数据)。
但是您没有正确通过它。
您应该传递/your-url/?query=Active
(用=代替:)。
当您传递query:Active时,它将整个“ query:Active”作为正文中的一个键。
答案 2 :(得分:0)
在纯Django中,获取 body 内容的方法是使用request.POST
,而获取查询参数的方法是使用request.GET
。由于您似乎正在使用Django rest框架视图,因此建议改用其request.data
和request.query_params
。
假设邮递员发送格式正确的数据,在这种情况下,您可以使用:
query = self.request.data.get("query")