我正在使用Django-Rest-Framework构建API并设置游标分页 - 默认情况下按'created'过滤器排序,对某些视图来说真的很好。
但我有这个我想要其他领域(last_update和访问)的订单。我把订购字段放在我的视图中,但不起作用。
class StationList(generics.ListAPIView):
"""
List all stations.
"""
ordering = ('-last_update', '-visits',)
queryset = Station.objects.all()
serializer_class = StationSerializer
permission_classes = (permissions.IsAuthenticated,)
这是我的setting.py
的一部分REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.TokenAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.AllowAny',
),
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.CursorPagination',
'PAGE_SIZE': 12,
}
我需要做些什么呢?
答案 0 :(得分:2)
尝试在ordering_fields
下列出您的字段,我认为您仍然需要将它们列入白名单进行排序:
ordering = ('-last_update', '-visits',)
ordering_fields= ('-last_update', '-visits',)
答案 1 :(得分:0)
我认为你应该使用数组而不是元组。 试试:
ordering = ['-last_update', '-visits']