我创建了一个OnDemandGrid,但注意到列排序并不适用于任何列。箭头在那里,屏幕刷新,但它不会按asc或desc顺序对列进行排序。我甚至尝试为每一栏指定,但它仍然无法正常工作。有没有/有同样问题的人?
更新:6.16.15 - 尝试sortParam建议后: 以下评论解释。它似乎正在做正确的事情......但仍然不会排序。
更新6.16.15 - 下午4:00 显然任何类型的过滤或排序都不能与Django很好地协作 - 试图确定dojo可以与Django Rest通信的集合过滤方式,反之亦然 - 到目前为止还没有找到任何一方的设置这样可行。列排序不仅不起作用 - 创建搜索字段不起作用,也不创建排序按钮。
这是在更改为DJANGO settings.py中的ORDERING_PARAM到' SORT' ...出于所有强化目的,这看起来应该有效。
答案 0 :(得分:1)
快速搜索Django Rest Framework documentation表明,默认情况下,期望ordering
查询参数指示应对哪个字段进行排序。 dstore/Request
商店(由Rest
继承)允许您通过sortParam
指示发送排序信息的查询参数名称。
此外,似乎DRF的OrderingFilter指示没有前缀的升序排序,以及-
的降序排序。 dstore/Request
默认为期待+
和-
作为前缀,但可以通过ascendingPrefix
和descendingPrefix
覆盖这些前缀。
因此,在您的情况下,您需要在创建sortParam: 'ordering', ascendingPrefix: ''
商店实例时传递的属性中包含Rest
。
一般情况下,当您遇到与此类存储相关的问题时,如果网格和后端似乎没有达到目的,那么这就是您必须遵循的过程 - 找出服务器期望的内容,找到了解客户端商店实现的内容,看看它是否可以调整或需要自定义。
更新6.17.15 - 更改服务器端设置以匹配dojo / dgrid参数 -
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',),
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
# 'PAGE_SIZE': 25,
'ORDERING_PARAM': 'sort'