将 JavaScript 变量分配给模板文件中的 Django 渲染变量

Assigning JavaScript variables to Django rendered variables in template files

<state data-value="{{ state }}"></state>

在我的 JavaScript 文件中我有:

var state = document.getElementsByTagName('state')[0].getAttribute('data-value');

过去这样做是因为 XHTML1.1 规范 - 在当今时代正确的方法是什么?
<div data-value="{{ state }}"></div> ?

我们也可以在 html 模板中做 <script>var state = '{{ state }}';<script> 但我有很多这样的作业。

我们还能如何批量分配 JavaScript 推送到 HTML 模板中的变量?

您可以在 Django 视图上下文中添加如下内容:

"MY_VARIABLES": json.dumps({
    "state": "My state",
    "number": 40,
    "isActive": True,
    ...
})

并且在模板中只分配一个变量并将值用作对象属性:

var MY_VARIABLES = {{ MY_VARIABLES|safe }};

> MY_VARIABLES.state

'My state'

> MY_VARIABLES.number

40

> MY_VARIABLES.isActive

true