我使用的是Django ModelViewSet。如果我通过 ?ordering=some-field
的url中,什么时候应用到我的queryset上,在django层面?我需要在那里捕捉一些特定的行为。
在 filter_queryset
方法,每个过滤器后端在列表中的 filter_backends
调用,并将查询集传递给它。我假设你使用的是DRF OrderingFilter
这是一个过滤器后端。所以这就是调用它的地方,并对查询集进行排序。
你可以检查 OrderingFilter
类,看看如何修改覆盖行为。