drf之過濾與排序
阿新 • • 發佈:2020-07-10
一、過濾
1、需要另外安裝django的過濾模組:pip install django-filter。
2、需要在setting.py中註冊。
3、配置過濾器:
①全域性配置,setting.py中:
REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',) }
②區域性配置,檢視類中:
filter_backends:[DjangoFilterBackend,]
4、設定過濾欄位,檢視類中:
filter_fields = ('name','age')
5、使用:.../?name=xxx,可以使用設定了的過濾欄位的一個或多個。
二、排序
1、全域性配置排序器,setting.py中:
REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ('frest_framework.filters.OrderingFilter',) }
2、區域性配置排序器,檢視類中:
filter_backends:[OrderingFilter,]
3、設定排序欄位,檢視類中:
ordering_fields = ('id', 'age')
4、使用:.../?ordering=id,此為正序排列,寫成<-id>,為反序,可以使用設定了的排序欄位的任意一個。
三、過濾器和排序器可以一起使用,先過濾再排序。