Django rest framework 如何从多个字段中搜索?
我的视图集有自定义过滤器:Django rest framework 如何从多个字段中搜索?,django-rest-framework,django-filter,Django Rest Framework,Django Filter,我的视图集有自定义过滤器: class OrderFilter(django\u filters.rest\u framework.FilterSet): username=django\u filters.CharFilter(name='user\u username',lookup\u expr='icontains') client\u name=django\u filters.CharFilter(name='user\u first\u name',lookup\u expr='i
class OrderFilter(django\u filters.rest\u framework.FilterSet):
username=django\u filters.CharFilter(name='user\u username',lookup\u expr='icontains')
client\u name=django\u filters.CharFilter(name='user\u first\u name',lookup\u expr='icontains')
类元:
型号=订单
排除=['pk']
当我发送这样的查询时,它会起作用:
http://localhost:8000/orders/?username=testuser
或
但我只想创建一个查询来搜索包含
用户名
、名字
和姓氏
中搜索字符串的数据。如何做到这一点?对于不能由单个筛选器表示的复杂行为,一般的通用方法是对筛选器类()使用方法
参数
一种可能的实施方式:
从django_过滤器将rest_框架作为过滤器导入
从django.db.models导入Q
类OrderFilter(filters.FilterSet):
search=filters.CharFilter(方法='search\u filter')
def search_过滤器(self、queryset、name、value):
返回queryset.filter(Q(username\uu icontains=value)
|Q(第一个名称=值)
|Q(姓氏=值))
对于无法用单个筛选器表示的复杂行为,一般的通用方法是对筛选器类()使用方法
参数
一种可能的实施方式:
从django_过滤器将rest_框架作为过滤器导入
从django.db.models导入Q
类OrderFilter(filters.FilterSet):
search=filters.CharFilter(方法='search\u filter')
def search_过滤器(self、queryset、name、value):
返回queryset.filter(Q(username\uu icontains=value)
|Q(第一个名称=值)
|Q(姓氏=值))
http://localhost:8000/orders/?client_name=john