【问题标题】:Django Template - List not rendering properlyDjango 模板 - 列表未正确呈现
【发布时间】:2020-09-06 02:26:32
【问题描述】:

我有以下列表,它使用渲染函数发送到 django 模板:["9.8 m/s", "9.9 m/s", "1.0 m/s"]。

在javascript函数中打印列表时,显示为:["9.8 m/s", "9.9 m/s", "1.0 m/s"]

我已使用以下内容打印列表:console.log("{{ options }}"); in javascript 函数。

我尝试过迭代

{% for option in options %}
    console.log("{{ option }}");
{% endfor %}

上面的代码显示单个字符而不是打印列表元素。 还尝试了 JavaScript 中的 JSON.parse 和 JSON.stringify 函数。

【问题讨论】:

    标签: javascript python django python-3.x django-templates


    【解决方案1】:

    模板引擎将 HTML 转义它呈现的字符串。您可以使用|safe template filter 避免这种情况:

    var options = {{ option|safe }};
    
    for (var i = 0; i < options.length; i++) {
        console.log(options[i]);
    }

    【讨论】:

    • var options = JSON.parse(["9.8 m/s", "9.9 m/s", "1.0 m/s"]); 它用您的解决方案呈现了这个,仍然得到: Uncaught SyntaxError: Unexpected token m in JSON at position 4. 删除了字符 ",但仍然出现错误.我错过了什么吗?
    • @Hatim:啊,是的,你不需要JSON.parse,因为它是一个JSON blob,它是响应产生的。
    猜你喜欢
    • 2015-04-01
    • 2011-09-01
    • 2015-06-18
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 2012-03-23
    相关资源
    最近更新 更多