Django - 使用Javascript onclick监听器更改Dictsort?

时间:2018-02-27 20:30:52

标签: javascript django sorting onclick

是否可以使用Javascript更改dictsort排序的内容?

这是我的排序代码:

{% for product in products|dictsortreversed:'price' %}
    ....stuff happening here
{% endfor %}

我想要的是当用户点击dictsortreversed:'price'成为dictsort:'price'的排序选项时。

这有可能吗?或者我应该尝试找到一种不同的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

这是不可能的,因为dictsortdictsortreversedtemplate filters,Django在渲染时应用于服务器,Javascript在渲染后在客户端浏览器中执行a不能影响服务器内的渲染。

您可以使用的经过验证的方法:

  1. 当用户选择排序选项并将此排序选项作为HTTP GET参数(查询字符串参数)传递时,发出新的HTTP请求,并修改Django视图以根据该参数对数据进行排序(可能是在order_by上调用QuerySet

    条件排序最好在视图级别完成,而不是在模板中完成。

  2. 通过Javascript使用动态排序,可以使用datatables等类似测试工具(Google很乐意为您提供帮助)。 另请参阅other questions关于使用Javascript进行排序。