【发布时间】:2014-02-25 14:18:01
【问题描述】:
我正在用 django-tastypie 编写一个 API。使用查询字符串过滤对象的 API。
例如:如果我想查找 first_name 中包含“foo”的客户,我将此查询字符串提供给 API 端点进行过滤:
myapi/customers/?first_name__icontains=foo
用于查找名字中包含“foo”和姓中包含“bar”的客户:
myapi/customers/?first_name__icontains=foo&last_name__icontains=bar
我想查找名字中包含“foo”的客户OR。但我不知道在查询字符串中指定 OR 过滤器的最佳方法是什么。
一个选项:我可以在查询字符串中使用 || 并在服务器端解析它,如下所示,但我不知道这是首选方法:
myapi/customers/?first_name__icontains=foo||last_name__icontains=foo
我看到了使用查询字符串过滤结果的 API,但我没有找到任何在查询字符串中进行 OR 过滤的相关文章。这种做法有错吗?如果没有;
在查询字符串中使用 OR 语句的最佳方式是什么?
注意:django-tastypie 使用__icontains 在数据库中进行类似搜索,忽略它:
last_name__icontains=foo 等于 SQL 中的last_name ilike '%foo%'。
【问题讨论】:
标签: django api query-string tastypie url-parsing