首页 > 解决方案 > 如何使用 javascript(或类似的)在 Django 模板中切片列表项

问题描述

我正在使用带有一些数据的 chartJs,我希望用户能够动态更改绘制的项目数。

目前,我正在处理 Django 模板,其数据在 Python/Django 中的视图中计算,该视图以普通列表形式出现(例如,数据:[5133.85, 1103.59, 1837.62, 378.90, 467.29, 107.35, 147.17, 0, ])

我的图表数据集的数据的 Django 模板代码如下(列出了列表的最后 3 个值)并且工作正常:

data: [{% for data in list|slice:'-3:' %}{{ data|unlocalize }}, {% endfor %}]

(我猜这个写法可以改进,但这不是这篇文章的目的)

我的问题是:

类似于<a href='' onClick='changeColumnsTo(5)'>Last 5 values</a>更改 slice 命令的参数{% for data in list|slice:'-3:' %}{{ data|unlocalize }}, {% endfor %}

我知道我可以解决让 Django 的 views.py 用我想要的 N 个值计算列表并重新加载页面的问题。但我不想用这么多不必要的电话打扰我的服务器。

我想知道,除了基于 javascript 的解决方案之外,是否还有另一种方法(从不重新加载页面)?

提前致谢!

标签: javascriptdjangodjango-templateschart.js

解决方案


我刚刚意识到我不能使用 slice 参数,因为它会有效地分割列表。我没有在第一条消息中解释它,但我的目标是用户可以一遍又一遍地更改他想要查看的列数。如果我对列表进行切片,我将无法再获得切片数据...

尽管如此,我仍然希望用户更改图表中(最后)列的数量。

谢谢大家!


推荐阅读