繁体   English   中英

如何从 django.models 导入数据,以便在 javascript 中使用?

[英]How to import data from django.models, to use in javascript?

我正在尝试从moodles 导入python 字典并在Javascript 中操作/打印它的属性。 但是似乎没有打印出来,我也没有收到任何错误警告。

视图.py

from chesssite.models import Chess_board
import json

def chess(request):
    board = Chess_board()
    data = json.dumps(board.rep)
    return render(request, 'home.html', {'board': data})

这里 board.rep 是一个 python 字典 {"0a":0, "0b":0, "0c":"K0"} - 基本上是一个棋盘

主页.html

<html>
   <body>
      {% block content %}
         <script>
            for (x in {{board}}) {
               document.write(x)
            }
         </script>
      {% endblock %}
   </body>
</html>

我也非常感谢一些调试技巧! 提前致谢,亚历克斯

要在 django 和 javascript 之间传输数据,请在 django 视图中转储数据并加载到 javascript 变量中。 尽量避免使用 javascript 语言构造进行 django 插值。 它不安全、容易出错,并且可能导致复杂性。 鉴于

data = json.dumps(board.rep)

在模板中

const data = JSON.parse('{{ data|safe }}')
// use normal javascript here. 'data' is a javascript array

for (let x of data) {
    document.write(x)
}

Django 默认将事物转义为 HTML,这将使"变成@quot; 。尝试将{{board}}更改为{{board|safe}}以防止 html 转义。或者,在视图中,您可以将字符串包装在mark_safe()这是在django.utils.safestring ,表明该字符串不应该逃脱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM