Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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
Python 来自多个输入为空的字段的Django筛选器_Python_Django_Reactjs_Filter - Fatal编程技术网

Python 来自多个输入为空的字段的Django筛选器

Python 来自多个输入为空的字段的Django筛选器,python,django,reactjs,filter,Python,Django,Reactjs,Filter,我是Django的新手,我现在正在尝试处理基于特定字段的过滤问题。React.js用于前端,Django用作RESTful API 对于前端,用户可以选择根据号码或姓名进行搜索。已成功收集信息。下面的代码只是为了更好地理解,不完整 <input type="text" /><label>Search by number</label> <input type="text" /><label>Search by name</labe

我是Django的新手,我现在正在尝试处理基于特定字段的过滤问题。React.js用于前端,Django用作RESTful API

对于前端,用户可以选择根据号码或姓名进行搜索。已成功收集信息。下面的代码只是为了更好地理解,不完整

<input type="text" /><label>Search by number</label>
<input type="text" /><label>Search by name</label>
如何根据前端提供的信息进行筛选,例如,如果用户选择按Django的名称进行搜索:

Entry.objects.filter(number=123)
Entry.objects.filter(name="abc")
如果用户选择按名称搜索,则Django会:

Entry.objects.filter(number=123)
Entry.objects.filter(name="abc")
我知道我实际上可以创建两个不同的API端点,因此编号和名称不会相互干扰。然而,如果有更多的过滤器字段,那么基于每个字段编写每个API肯定是低效的


有人能帮我吗?请让我知道,如果我解释清楚或更多的信息应该提供

您可以使用
Q
对象使用oring筛选结果

Entry.objects.filter(number=123, name="abc")
像下面这样

from django.db.models import Q
Entry.objects.filter(Q(number=123) | Q(name="abc"))

使用
Q
对象引用的方法有很多。

您是否希望以相互排斥的方式按
number
name
进行过滤,或者用户可以同时按这两种方式进行过滤?