Django 如何正确访问 javascript 中的上下文数组?
Posted
技术标签:
【中文标题】Django 如何正确访问 javascript 中的上下文数组?【英文标题】:Django how to correctly acces the context array in javascript? 【发布时间】:2020-11-17 23:26:20 【问题描述】:我的问题与之前的问题类似,但是我似乎无法使我的代码工作:
How can I pass my context variables to a javascript file in Django?
How to use the context variables passed from Django in javascript?
我有一个列表列表,包含以下形式的数据:
data = [[1, 2, 3, 4, ...] [210, 346, 331, 402, ...] [...] ...]
其中第一个列表表示每个采样的数量。我正在使用如下所示的类将这些数据传递给我的 html 文件:
class IndexView_charts(generic.TemplateView):
"""
IndexView:
"""
module = 'IndexView'
template_name = charts_temp_name #variable for the template
data = ##extra code here to fetch data
def get_queryset(self):
log(self.module, 'get_queryset', file=__file__)
return self.data
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['data'] = self.data
return context
在模板中,我可以访问变量数据,例如,它显示在网页上:
<h1> data.0 </h1>
现在,我想在我的脚本中访问它。在同一个文件中,我有以下代码:
var chartData = data ;
... some more code here ...
data:chartData[1]
但我没有得到我想要的图表。如果我将 chartData[x] 的出现更改为包含一些虚拟数据的列表,则脚本可以工作。所以问题在于访问数据。
【问题讨论】:
您尝试过使用escapejs
内置标签,例如' python_object|escapejs ';
?
问题解决了吗?
【参考方案1】:
似乎没有将上下文数组正确解析为 js
作为数组。如果我的评论建议不起作用,那么您可以尝试使用tojson
template-tag 将 python 列表转换为 js 数组。
例如,
var mylist = mylist|tojson;
for(i = 0; i < mylist.length; i++)
console.log(mylist[i])
;
【讨论】:
以上是关于Django 如何正确访问 javascript 中的上下文数组?的主要内容,如果未能解决你的问题,请参考以下文章
Django:如何在javascript中访问当前登录用户的ID?
如何使用Django模板在javascript中访问ajax jquery中的模板变量