Django 视图集操作的不同排序字段
我有一个viewset,比如TestingViewSet,它有一个默认的排序字段idDjango 视图集操作的不同排序字段,django,django-rest-framework,Django,Django Rest Framework,我有一个viewset,比如TestingViewSet,它有一个默认的排序字段id class TestingViewSet(viewsets.ReadOnlyViewSet): filter_backends = ( django_filters.rest_framework.DjangoFilterBackend, filters.OrderingFilter, ) ordering = ('id',) 但是还有一些自定义的操作视图使用super(Test
class TestingViewSet(viewsets.ReadOnlyViewSet):
filter_backends = (
django_filters.rest_framework.DjangoFilterBackend,
filters.OrderingFilter,
)
ordering = ('id',)
但是还有一些自定义的操作视图使用super(TestingViewSet).list,我想有条件地更改它们的排序字段
def distinct_list(self, request):
return super(TestingViewSet, self).list(request)
有没有办法只更改函数distinct_list的排序字段?您可以将值分配给self.ordering
class TestingViewSet(viewsets.ReadOnlyViewSet):
filter_backends = (
django_filters.rest_framework.DjangoFilterBackend,
filters.OrderingFilter,
)
ordering = ('id',)
@action(...)
def distinct_list(self, request):
self.ordering = ("some_other_field",)
# or
self.ordering = () # to remove the ordering
return super().list(request, *args, **kwargs)
class TestingViewSet(viewset.ReadOnlyViewSet):
过滤器\u后端=(
django_filters.rest_framework.django过滤器包,
filters.OrderingFilter,
)
排序=('id',)
@行动(……)
def distinct_列表(自身、请求):
self.ordering=(“some\u other\u字段”,)
#或
self.ordering=()#删除排序
return super().list(请求、*args、**kwargs)