【发布时间】:2015-09-28 07:06:13
【问题描述】:
我已经在我的 API 上启用了排序,它工作得很好。我的问题是它只允许我按字段值排序。我希望能够进行类似的查询
GET /api/some_endpoint/?crazy_query=123
然后,即使模型没有字段crazy_field,我也希望能够以某种方式对其进行响应。我只是不知道在哪里做。 OrderingFilter 当前通过使用设置DEFAULT_FILTER_BACKENDS 注入到我的所有视图集中。我想我必须创建一个自定义过滤器后端,但我不确定如何去做
【问题讨论】:
-
您所说的“自定义排序字段”是什么意思?您的 API 应如何响应该确切查询?
-
我的意思是查询参数不一定与模型字段 fx 一对一映射。使用
search、q、ordering等。我想知道在 DRF 中我可以在哪里为此类参数实现逻辑 -
该逻辑的好地方是自定义过滤器后端。您也可以将该逻辑直接放入您的视图中。如果只是对结果进行过滤或排序,则过滤器后端将是最佳选择。
-
@GwynBleidD 我确实想到了这个视图,但正如你所说,它更适合过滤器后端。你能提供一个如何创建这样一个后端的例子吗?
标签: django django-rest-framework