【发布时间】:2020-05-09 12:55:07
【问题描述】:
这是我的模型类:
class Product(models.Model):
SKU = models.IntegerField()
price = models.IntegerField()
status = models.IntegerField()
序列化器是:
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = '__all__'
在我看来,我使用此逻辑按状态和价格过滤产品。
class ProductFilter(filters.FilterSet):
class Meta:
model = Product
fields = {
'status': ['icontains'],
'price': ['iexact', 'lte', 'gte'],
}
@api_view(['POST'])
def productview(request):
queryset = Product.objects.all()
serializer_class = ProductSerializer
filterset_class = ProductFilter
serializer = serializer_class()
return Response(serializer.data)
它给出这样的输出
{
"SKU": null,
"price": null,
"status": null
}
现在如何根据 filter 获取所有产品列表(索引)?我在哪里将过滤器值作为 JSON 提供,就像这样。
{
"price": 200,
"status": 2
}
它将根据价格== 200 和状态==2 进行过滤。 还有,我可以使用基于函数的视图来进行这种过滤吗???
【问题讨论】:
-
试试这个 (serializers.ModelSerializer) 而不是 (serializers.Serializer)。
标签: django django-rest-framework filtering