如何使用 drf_yasg 显示排序

How can I display ordering using drf_yasg

如何处理drf_yasg中的排序?

我有一个观点:

class ContentView(ModelViewSet):
    ....
    ordering_fields = ['price',]

但是我打开swagger的时候看不到这个可能性

我找到了解决方案,也许有人也需要这个。

我使用 django_filters 包,在这种情况下,我们应该在我们的视图中使用 filter_class,在那里我们可以根据需要定义排序。

示例:

from django_filters import rest_framework as filters, OrderingFilter

from contents.models import Content


class ContentFilter(filters.FilterSet):

    order = OrderingFilter(
        # tuple-mapping retains order
        fields=(
            ('price', 'price'),
        ),

        field_labels={
            'price': 'Content price',
        }
    )

    class Meta:
        model = Content
        fields = ['price']


# my view in views.py

class ContentView(ModelViewSet):
        filter_class = ContentFilter
        .....

现在您可以使用排序 ?order=price?order=-price 并且您可以在 swagger 文档上看到它

django_filtershere

中有关 OrderingFilter 的更多信息