是否可以使用Javascript更改dictsort
排序的内容?
这是我的排序代码:
{% for product in products|dictsortreversed:'price' %}
....stuff happening here
{% endfor %}
我想要的是当用户点击dictsortreversed:'price'
成为dictsort:'price'
的排序选项时。
这有可能吗?或者我应该尝试找到一种不同的方法来做到这一点?
答案 0 :(得分:1)
这是不可能的,因为dictsort
和dictsortreversed
是template filters,Django在渲染时应用于服务器,Javascript在渲染后在客户端浏览器中执行a不能影响服务器内的渲染。
您可以使用的经过验证的方法:
当用户选择排序选项并将此排序选项作为HTTP GET参数(查询字符串参数)传递时,发出新的HTTP请求,并修改Django视图以根据该参数对数据进行排序(可能是在order_by
上调用QuerySet
。
条件排序最好在视图级别完成,而不是在模板中完成。
通过Javascript使用动态排序,可以使用datatables等类似测试工具(Google很乐意为您提供帮助)。 另请参阅other questions关于使用Javascript进行排序。