對於列表資料可能需要根據字段進行過濾,我們可以通過新增django-filter
擴充套件來增強支援。
pip install django-filter在配置檔案中增加過濾後端的設定:
...'django_filters', # 需要註冊應用,
]在settings檔案中配置:
rest_framework =
檢視中指定要過濾的字段:
classemployeeviewset(modelviewset):
queryset =employee.objects.all()
serializer_class =employeeserializer
#指定可以根據哪些字段進行列表資料的過濾
filter_fields = ('
gender
', '
department
')
classemployeeviewset(modelviewset):
queryset =employee.objects.all()
serializer_class =employeeserializer
#指定過濾器
filter_backends =[djangofilterbackend]
#指定可以根據哪些字段進行列表資料的過濾
filterset_fields = ('
gender
', '
department
')
訪問127.0.0.1/employees?gender=1時可以過濾出性別欄位是1的資料。
對於列表資料,rest framework 提供了orderingfilter
過濾器 來實現按指定字段進行排序的功能
使用方法:
設定示例:classemployeeviewset(modelviewset):
queryset =employee.objects.all()
serializer_class =employeeserializer
#新增排序的過濾器
filter_backends =[..., orderingfilter]
#指定可以根據哪此字段進行排序
ordering_fields = ('
age', '
salary
')
使用示例:
訪問127.0.0.1/employees/?ordering=age(年齡公升序)
訪問127.0.0.1/employees/?ordering=-age(年齡降序)
訪問127.0.0.1/employees/?ordering=age,-salary(先安裝年齡公升序來排,如果年齡一樣,按工資公升序來排)
drf 過濾與排序
drf中如果想在url中直接寫過濾與排序,則需要安裝第三方模組。pip install django filter其次你需要將該模組註冊進行django配置檔案中。rest framework django filters 以下是一張書籍表和資料,我可能通過書名查,也可能通過 查詢。可能通過 排序,...
DRF 過濾 搜尋 排序功能
過濾功能利用的是第三方包 django filters,搜尋和排序利用的是 django drf 提供的 filters 示例 如下 from rest framework import filters 搜尋和排序功能 注意 這兩個是 drf 提供的功能 from django filters.re...
DRF過濾元件
from rest framework import pagination 基礎分頁 class pagenumberpagination pagination.pagenumberpagination 預設一頁顯示的條數 page size 2 查詢頁面的關鍵字 page query param ...