jro*_*aud 6 django django-rest-framework
在 django Rest 框架 APIView 中,我们使用与搜索过滤器相同的方法指定排序字段,因此我们可以使用相关名称指定排序。
ordering_fields = ('username', 'email', 'profile__profession')
Run Code Online (Sandbox Code Playgroud)
路线看起来像这样:https://example.com/route?ordering=profile__profession
然而,我们宁愿避免在 api 中显示模型之间的关系,然后指定而profession不是profile__profession. 例如https://example.com/route?ordering=profession
是否可以在不执行 APIView's中实现排序的情况下实现此目的def get_queryset(self):?
只需稍加改动即可实现def get_queryset(self)。
def get_queryset(self):
query = super(UserListView, self).get_queryset().annotate(profession=F('profile__profession'))
return query
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2653 次 |
| 最近记录: |