我正在使用由Django rest框架制成的API,
我正在尝试对JSON进行筛选
这是我的serializers.py
文件
from rest_framework import serializers
from .models import Establecimiento,Categoria,Ciudad,Zona
import django_filters
class EstablecimientoSerializer(serializers.ModelSerializer):
class Meta:
model = Establecimiento
depth = 1
fields = ('nombre',
'ciudad',
'categoria',
'direccion',
'telefono',
'precioMinimo',
'precioMaximo',)
这是我的views.py
文件
from rest_framework import viewsets
from .serializers import EstablecimientoSerializer, CategoriaSerializer
from models import *
from rest_framework import filters
from rest_framework import generics
class EstablecimientoViewSet(viewsets.ModelViewSet):
queryset = Establecimiento.objects.all()
serializer_class = EstablecimientoSerializer
filter_fields = ('categoria',)
然后在EstablecimientoViewSet
类中,我将filter_fields = ('categoria',)
使用category字段筛选url的API
如果将筛选器添加到查询参数,则结果集不会更改,它将显示所有未筛选的数据。
...establecimiento?establecimiento=bar
我怎样才能对这个模型进行筛选?
对我来说,当我把逗号放在filter_字段的末尾时,它就起作用了。
例如
还可以提供自己的过滤器类,这可能会给您更多的选择和灵活性
在这个例子中,我得到了过滤器
创建日期=2015-09-22 17: 39:01.184681(这样我就可以按小于该值的值过滤datetime)
创建时间=2015-09-22 17:39:01.184681(或大于提供时间 值)
此外,我还可以使用自定义筛选字段隐藏外部字段,在本例中,它是标记&;大学。另外,我还可以提供比较运算符(lookup_type)
样本请求:
您需要定义筛选后端和计划筛选的所有相关字段:
示例:
相关问题 更多 >
编程相关推荐