drf-spectacular
drf-spectacular copied to clipboard
Add support for displaying ordering fields
class SomeViewSet(mixins.ListModelMixin, GenericViewSet):
queryset = SomeModel.objects.all()
filter_backends = (filters.OrderingFilter,)
ordering_fields = ("field1", "field2")
@extend_schema(
parameters=[
OpenApiParameter(
name="ordering",
description=f'Supports sorting by {" ".join(str(x) for x in ordering_fields)}. Use - to filter backwards',
)
]
)
def list(self, request, *args, **kwargs):
return super().list(request, *args, **kwargs)
without extend schema decorator, description for ordering is Which field to use when ordering the results. which is not very informative. Maybe it's better to have list of supported fields?
Hi @Headmaster11, that is a good point. The default actually comes out of DRF:
https://github.com/encode/django-rest-framework/blob/71e6c30034a1dd35a39ca74f86c371713e762c79/rest_framework/filters.py#L322
So we may either fix it upstream or introduce an override (OpenApiFilterExtension
) on our side.