如何处理 drf_yasg 中的排序?
我有一个观点:
class ContentView(ModelViewSet):
....
ordering_fields = ['price',]
但是当我大摇大摆地打开时,我看不到这种可能性。
如何处理 drf_yasg 中的排序?
我有一个观点:
class ContentView(ModelViewSet):
....
ordering_fields = ['price',]
但是当我大摇大摆地打开时,我看不到这种可能性。
我找到了解决方案,也许有人也需要这个。
我使用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
.....
现在你可以使用 ordering?order=price
或者?order=-price
你可以在 swagger docs 上看到它
有关 django_filters 中的 OrderingFilter 的更多信息在这里