gpt4 book ai didi

python - 使用 Django Rest Framework 订购带有排序查询参数的detail_route

转载 作者:太空宇宙 更新时间:2023-11-03 15:59:12 25 4
gpt4 key购买 nike

在如下所示的 detail_route 方法中,我如何支持使用 ordering 查询参数对事件进行排序,如下所示:

http://localhost.com/items/123/events?ordering=EventDateTime

class ItemViewSet(viewsets.ModelViewSet):

queryset = Item.objects.all()
serializer_class = ItemSerializer
filter_backends = (
filters.OrderingFilter
)
ordering_fields = ('Label')

@detail_route()
def events(self, request, pk=None):
item = self.get_object()
events = item.events.all()
page = self.paginate_queryset(events)
if page is not None:
serializers = EventSerializer(page, many=True, context={'request': request})
return self.get_paginated_response(serializers.data)
serializers = EventSerializer(events, many=True, context={'request': request})
return Response(serializers.data)

我尝试了以下方法,但没有任何结果:

@detail_route()
def events(self, request, pk=None):
item = self.get_object()
events = filters.OrderingFilter().filter_queryset(request, item.events.all(), self)
page = self.paginate_queryset(events)
if page is not None:
serializers = EventSerializer(page, many=True, context={'request': request})
return self.get_paginated_response(serializers.data)
serializers = EventSerializer(events, many=True, context={'request': request})
return Response(serializers.data)

最佳答案

正如汤男孩建议的那样。您需要将 EventDateTime 添加到 ItemViewSet 中的 ordering_fields 中。

关于python - 使用 Django Rest Framework 订购带有排序查询参数的detail_route,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40507370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com