【发布时间】:2018-09-07 04:13:23
【问题描述】:
我是 Django 新手,我现在正在尝试处理基于特定字段的过滤问题。 React.js 用于前端,Django 用作 RESTful API。
对于前端,允许用户选择基于数字或名称的搜索。信息已成功收集。下面的代码只是为了更好的理解,并不完整。
<input type="text" /><label>Search by number</label>
<input type="text" /><label>Search by name</label>
对于后端,响应应根据输入信息(数字或名称)过滤查询集。但是,当我浏览文档时,我注意到对于过滤,应该提供所有过滤字段。
Entry.objects.filter(number=123, name="abc")
如何根据前端给定的信息进行过滤,例如,如果用户选择按 Django 所做的名称搜索:
Entry.objects.filter(number=123)
如果用户选择按名称搜索,那么 Django 会这样做:
Entry.objects.filter(name="abc")
我知道我实际上可以创建两个不同的 API 端点,因此编号和名称不会相互干扰。但是,如果有更多的过滤字段,那么根据每个字段编写每个 API 肯定是低效的。
谁能帮我解决这个问题?如果我解释清楚或应该提供更多信息,请告诉我。
【问题讨论】:
-
您是希望以相互排斥的方式按
number和name进行过滤,还是用户可以同时按两者进行过滤?
标签: python django reactjs filter