我在django休息时打开了自动生成/ docs,我在设置中打开了limit
和offset
。文档显示所有lsit视图都接受那些查询参数,除了具有过滤器的视图基于id的列表,然后docs不显示查询参数和仅url参数,即使查询参数仍然有效。
我已经验证查询参数仍适用于视图。
我通过get_queryset
我的观点类:
class DataList(generics.ListCreateAPIView):
serializer_class = DataSerializer
def get_queryset(self):
start = self.request.query_params.get('start', None)
end = self.request.query_params.get('end', None)
tail = self.request.query_params.get('tail', None)
if(start != None or end != None):
if(start == None):
return Data.objects.filter(id_unit=self.kwargs['id_unit'], inserted__lte = end)
elif(end == None):
return Data.objects.filter(id_unit=self.kwargs['id_unit'], inserted__gte = start)
else:
return Data.objects.filter(id_unit=self.kwargs['id_unit'], inserted__gte = start, inserted__lte = end)
return Data.objects.filter(id_unit=self.kwargs['id_unit'])
答案 0 :(得分:0)
试试这个
class DataList(generics.ListCreateAPIView):
serializer_class = DataSerializer
def get_queryset(self):
start = self.request.query_params.get('start', None)
end = self.request.query_params.get('end', None)
tail = self.request.query_params.get('tail', None)
data = Data.objects.filter(id_unit=self.kwargs['id_unit'])
if start:
data.filter(inserted__gte = start)
if end:
data.filter(inserted__lte = end)
retutn data