我们正在使用Django 1.10和DRF。
默认情况下,客户端可以按模型的任何字段进行排序。但是-在模型上,我们保留字段ID,而不是值。我想返回一个按值排序的列表。
模型的一部分:
class Type():
Fly = {'id': '1', 'value': 'Fly'}
Drive = {'id': '2', 'value': 'Drive'}
Ski = {'id': '3', 'value': 'Ski'}
Sail = {'id': '4', 'value': 'Sail'}
class Item(BaseModel):
TYPES = (
(Type.Fly['id'], Type.Fly['value']),
(Type.Drive['id'], Type.Drive['value']),
(Type.Ski['id'], Type.Ski['value']),
(Type.Sail['id'], Type.Sail['value']),
)
type_id = models.CharField(max_length=50, choices=TYPES)
模型视图的一部分:
class ItemViewSet(BaseViewMixin, BaseModelView):
serializer_class = ItemSerializer
filter_backends = (ItemFilter, OrderingFilter,)
现在,如果客户要求
GET ......../Item?sort=type_id
他们会收到
Fly, Drive, Ski, Sail
所需结果为:
Drive, Fly, Sail, Ski
有什么主意吗?