Django REST framework搜索過濾的使用方法
第一步:設置過濾類型;
from rest_framework import filters # 引入drf的過濾類
filter_backends = (filters.SearchFilter, ) # 搜索功能,SearchFilter是搜索過濾
其他過濾類型:
DjangoFilterBackend是精確過濾,屬於django的filter;
SearchFilter是搜索過濾;
OrderingFilter是排序過濾。
第二步:設置搜索字段,可以跨表查詢(存在一對多或多對多的表);
search_fields = ('title', 'brief', "topic_tags__tag_name")
注意:topic_tags__tag_name是主題標籤表的tag_name字段;
注意:可以結合正則表達式,寫出更豐富的搜索過濾,具體參考官方文檔。
Django REST framework官方文檔:
http://www.django-rest-framework.org/api-guide/filtering/#searchfilter
Django官方檔:
https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin.search_fields