过滤Filtering和排序
DRF过滤
对于列表数据可能需要根据字段进行过滤,可通过添加django-fitlter扩展来增强支持。
pip install django-filter
在配置文件中增加过滤后端的设置:
INSTALLED_APPS = [ ... 'django_filters', # 需要注册应用, ] REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',) }
在视图中添加filter_fields属性,指定可以过滤的字段
class BookListView(ListAPIView): queryset = Book.objects.all() serializer_class = BookSerializer filter_fields = ('title',) # 127.0.0.1:8000/books/?title=天龙八部
排序
前端可以传递的ordering参数的可选字段值需要在ordering_fields中指明。
例如:
class BookListView(ListAPIView): queryset = Book.objects.all() serializer_class = BookSerializer filter_backends = [OrderingFilter] ordering_fields = ('price', 'pub_date') # 127.0.0.1:8000/books/?ordering=-price 按照价格递减排序
本文作者:wang_longan
本文链接:https://www.cnblogs.com/longan-wang/p/15179299.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步