OnDemandGrid 列排序不适用于 dstore/Rest 和 Django Rest Framework
OnDemandGrid column sorting isn't working with dstore/Rest and Django Rest Framework
我创建了一个 OnDemandGrid,但发现列排序对任何列都不起作用。箭头在那里并且屏幕刷新,但它不会按升序或降序对列进行排序。我什至尝试过为每一列指定,但它仍然不起作用。有人 having/had 有同样的问题吗?
更新:6.16.15 - 在尝试 sortParam 建议后:
下面的评论解释。它似乎在做正确的事情......但仍然无法排序。
更新 6.16.15 - 4:00pm
显然任何类型的过滤或排序都不能很好地与 Django 一起工作——试图确定如何在 dojo 可以与 Django Rest 通信的地方设置过滤,反之亦然——到目前为止还没有找到任何一方都有效的设置。不仅列排序不起作用——创建搜索字段也不起作用,创建排序按钮也不起作用。
这是在将 DJANGO settings.py 中的 ORDERING_PARAM 更改为 'SORT' 之后...对于所有密集用途,这看起来应该有效。
通过 Django Rest Framework documentation 的快速搜索显示它默认需要一个 ordering
查询参数来指示应该对哪个字段进行排序。 dstore/Request
存储(由 Rest
继承)允许您通过 sortParam
.
指示发送排序信息的查询参数名称
此外,DRF 的 OrderingFilter 似乎表示没有前缀的升序排序,以及 -
的降序排序。 dstore/Request
默认期望 +
和 -
作为前缀,但这些可以通过 ascendingPrefix
和 descendingPrefix
.
覆盖
因此,在您的情况下,您需要在创建 Rest
商店实例时传递的属性中包含 sortParam: 'ordering', ascendingPrefix: ''
。
一般来说,当您 运行 遇到像这样的商店相关问题时,网格和后端似乎无法维持生计,这就是您必须遵循的过程 - 找出服务器期望什么,找出客户端存储实现了什么,看看它是否可以调整或需要定制。
更新 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'
我创建了一个 OnDemandGrid,但发现列排序对任何列都不起作用。箭头在那里并且屏幕刷新,但它不会按升序或降序对列进行排序。我什至尝试过为每一列指定,但它仍然不起作用。有人 having/had 有同样的问题吗?
更新:6.16.15 - 在尝试 sortParam 建议后: 下面的评论解释。它似乎在做正确的事情......但仍然无法排序。
更新 6.16.15 - 4:00pm 显然任何类型的过滤或排序都不能很好地与 Django 一起工作——试图确定如何在 dojo 可以与 Django Rest 通信的地方设置过滤,反之亦然——到目前为止还没有找到任何一方都有效的设置。不仅列排序不起作用——创建搜索字段也不起作用,创建排序按钮也不起作用。
这是在将 DJANGO settings.py 中的 ORDERING_PARAM 更改为 'SORT' 之后...对于所有密集用途,这看起来应该有效。
通过 Django Rest Framework documentation 的快速搜索显示它默认需要一个 ordering
查询参数来指示应该对哪个字段进行排序。 dstore/Request
存储(由 Rest
继承)允许您通过 sortParam
.
此外,DRF 的 OrderingFilter 似乎表示没有前缀的升序排序,以及 -
的降序排序。 dstore/Request
默认期望 +
和 -
作为前缀,但这些可以通过 ascendingPrefix
和 descendingPrefix
.
因此,在您的情况下,您需要在创建 Rest
商店实例时传递的属性中包含 sortParam: 'ordering', ascendingPrefix: ''
。
一般来说,当您 运行 遇到像这样的商店相关问题时,网格和后端似乎无法维持生计,这就是您必须遵循的过程 - 找出服务器期望什么,找出客户端存储实现了什么,看看它是否可以调整或需要定制。
更新 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'