Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django rest framework 如何从多个字段中搜索?_Django Rest Framework_Django Filter - Fatal编程技术网

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