安装django-filter
pip install django-filter
在视图中定义一个FilterSet类,指定要过滤的模型,以及要过滤的字段
from django_filters import rest_framework as filters
class MyFilterSet(filters.FilterSet):
name = filters.CharFilter(lookup_expr='icontains')
age = filters.RangeFilter()
class Meta:
model = MyModel
fields = ['name', 'age']
将FilterSet类传递给Django视图
from rest_framework import generics
class MyListView(generics.ListAPIView):
queryset = MyModel.objects.all()
serializer_class = MySerializer
filter_backends = [filters.DjangoFilterBackend]
filterset_class = MyFilterSet
在URLconf中定义相应的url
from django.urls import path
from .views import MyListView
urlpatterns = [
path('my-list/', MyListView.as_view()),
]
现在,当向 my-list/
发出请求时,只有与 name
字段匹配的记录和年龄字段范围匹配的记录会被返回。
上一篇:AdvancedIPScanner找不到树莓派的IP地址
下一篇:AdvancedMarkerViewextends.ThrowanerrorTypeError:Illegalconstructor