如何使用 javascript(或类似的)在 Django 模板中切片列表项
Posted
技术标签:
【中文标题】如何使用 javascript(或类似的)在 Django 模板中切片列表项【英文标题】:How to slice list items in Django Template using javascript (or similar) 【发布时间】:2020-09-14 09:53:46 【问题描述】:我正在使用带有一些数据的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>
改变% for data in list|slice:'-3:' % data|unlocalize , % endfor %
中的切片命令参数
我知道我可以解决问题,让 Django 的 views.py 用我想要的 N 个值计算列表,重新加载页面。但我不想用这么多不必要的调用来扰乱我的服务器。
我想知道,除了基于 javascript 的解决方案之外,是否还有另一种方法(从不重新加载页面)?
提前致谢!
【问题讨论】:
【参考方案1】:我刚刚意识到我不能使用 slice 参数,因为它会有效地分割列表。 我没有在第一条消息中解释它,但我的目标是用户可以一遍又一遍地更改他想要查看的列数。 如果我对列表进行切片,我将无法再获取切片数据...
尽管如此,我仍然希望用户更改图表中(最后)列的数量。
谢谢大家!
【讨论】:
以上是关于如何使用 javascript(或类似的)在 Django 模板中切片列表项的主要内容,如果未能解决你的问题,请参考以下文章
使用Ajax请求加载php循环(或类似的Javascript解决方案)
是否可以在 Javascript 中使用 OpenCV 或类似库? [关闭]