2 回答

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊
您必須根據(jù)GET參數(shù)手動過濾查詢集。
class ImageViewSet(viewsets.ModelViewSet):
queryset = Image.objects.all()
serializer_class = ImageSerializer
filter_backends = (DjangoFilterBackend, OrderingFilter,)
filter_fields = ('image_name',)
ordering_fields = ('id','image_name,')
def get_queryset(self):
minheight = self.request.GET.get('minheight')
maxheight = self.request.GET.get('maxheight')
return self.queryset.filter(image_height__gte=minheight, image_height__lt=maxheight)

TA貢獻(xiàn)1803條經(jīng)驗 獲得超3個贊
一般來說,查詢看起來像:
qs = models.Image.objects.filter(image_height__gt=100, image_height__lt=300)
這使用gt和lt字段查找。還有大于或等于 ( gte) 和小于或等于 ( lte) 的變體。
class ImageViewSet(viewsets.ModelViewSet):
serializer_class = ImageSerializer
filter_backends = (DjangoFilterBackend, OrderingFilter,)
filter_fields = ('image_name',)
ordering_fields = ('id','image_name',)
def get_queryset(self):
queryset = Image.objects.all()
minheight = self.request.query_params.get('minheight', '')
maxheight = self.request.query_params.get('maxheight', '')
if(minheight and maxheight):
queryset = queryset.filter(image_height__gt=minheight,
image_height__lt=maxheight)
return queryset
添加回答
舉報