javascript - 如何使用 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 %}]
(我猜这个写法可以改进,但这不是这篇文章的目的)
我的问题是:
- 我希望用户能够更改列表的项目数,因此,图表的列数,即上面的切片参数(-3)。如何使用 javascript 函数来做到这一点?
类似于<a href='' onClick='changeColumnsTo(5)'>Last 5 values</a>
更改 slice 命令的参数{% for data in list|slice:'-3:' %}{{ data|unlocalize }}, {% endfor %}
我知道我可以解决让 Django 的 views.py 用我想要的 N 个值计算列表并重新加载页面的问题。但我不想用这么多不必要的电话打扰我的服务器。
我想知道,除了基于 javascript 的解决方案之外,是否还有另一种方法(从不重新加载页面)?
提前致谢!
解决方案
我刚刚意识到我不能使用 slice 参数,因为它会有效地分割列表。我没有在第一条消息中解释它,但我的目标是用户可以一遍又一遍地更改他想要查看的列数。如果我对列表进行切片,我将无法再获得切片数据...
尽管如此,我仍然希望用户更改图表中(最后)列的数量。
谢谢大家!
推荐阅读
- android - 在我的 apk 中保留 admob 广告单元 ID 是否不安全?
- django - 如何通过用户选择使 django 屏幕动态化?
- python - 有什么办法可以摆脱所需的参数错误?
- angular - 为什么第二次订阅 Observable.of 会给出另一个结果?
- blazor - 在兄弟姐妹(组件)之间传递对象
- powershell - 根据 LastUpdatedStatusReport 日期有条件地从 WSUS 服务器中选择字段
- java - BoradcastReceiver 通知链接到我的应用程序
- javascript - 确定下拉菜单的选定索引号?
- r - 替换“表达式”类的 R 对象中的字符
- java - 尝试在多阶段 docker 构建中复制它时找不到我的 jar 文件