【问题标题】:how to append django data to javascript如何将 django 数据附加到 javascript
【发布时间】:2016-01-29 08:15:47
【问题描述】:

我有一个 django 视图,它将两个列表传递给 html 模板,如下所示:

views.py

sale_day = dash[0]
sale_amt = dash[1]
context_dict = {'sale_day':sale_day,
                'sale_amt':sale_amt}
return render(request, 'dashboard/index.html', context_dict)

在 html 模板中,我可以使用 for 循环显示数据,例如:

{% for day in sale_day %}
    {{day}}
{% endfor %}

但我想将数据传递给 html 文件中的 javascript 标记。 我通过了如下列表:

<script>

var sale_day = {{sale_day|safe}}
var sale_amt = {{sale_amt|safe}} 

现在我想从我的两个列表中填充一个 javascript 数组。我的数组是这样的:

data = [
    { day: '1', amt: 100},
    { day: '2', amt: 75},
    ....
]

如何做到这一点?

【问题讨论】:

    标签: javascript jquery python html django


    【解决方案1】:

    基本上,您希望将 Python 字典序列化为 JSON 对象。有很多方法可以做到这一点。最简单的就是使用:

    import json
    json.dumps(data)
    

    要序列化 ​​Django 模型,请查看:Django documentation: Serializing Django objects

    【讨论】:

      【解决方案2】:

      在您的视图中创建一个字典,将其转储为 JSON,然后在模板中使用它。

      data = data = [{'day': day, 'amt': amt} for day, amt in zip(sale_day, sale_amt)]
      json_data = json.dumps(data)
      return render(request, 'dashboard/index.html', {"data": json_data})
      

      ...

      var data = {{ json_data|safe }}
      

      【讨论】:

      • 不应该是html中的{{data|safe}}而不是{{json_data|safe}}吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      • 2022-01-20
      相关资源
      最近更新 更多