【问题标题】:Django how to correctly acces the context array in javascript?Django 如何正确访问 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 }}';?
  • 问题解决了吗?

标签: javascript python html django


【解决方案1】:

似乎没有将上下文数组正确解析为 js 作为数组。如果我的评论建议不起作用,那么您可以尝试使用tojson template-tag 将 python 列表转换为 js 数组。

例如,

var mylist = {{mylist|tojson}};
for(i = 0; i < mylist.length; i++){
    console.log(mylist[i])
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 2019-08-18
    相关资源
    最近更新 更多