Python 来自多个输入为空的字段的Django筛选器
我是Django的新手,我现在正在尝试处理基于特定字段的过滤问题。React.js用于前端,Django用作RESTful API 对于前端,用户可以选择根据号码或姓名进行搜索。已成功收集信息。下面的代码只是为了更好地理解,不完整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
<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
进行过滤,或者用户可以同时按这两种方式进行过滤?