从JavaScript访问Django模板{{Variable}}

Dip*_*pak 10 javascript django

我试图在html页面内联javascript中访问django模板变量,它工作正常.但如果我使用js <script src="..>然后它不工作.是这个限制还是我做错了什么?我非常感谢你的帮助.

Poi*_*nty 12

包含的Javascript不由服务器上的Django模板处理器处理,因此不起作用.如果您需要通过模板将信息传递给包含的Javascript文件,请让您的模板创建一个小块,<script>其中声明某些全局变量包含这些模板变量.然后,您的纯Javascript文件可以通过查找<script>模板中创建的全局对象来获取值.


Jas*_*ado 5

Pointy的回答是正确的.我经常发现这个过滤器对这种情况有用:

@register.filter(name='json')
def _json(obj):
  #remember to make sure the contents are actually safe before you use this filter!
  return safestring.mark_safe(json.dumps(obj)) 
Run Code Online (Sandbox Code Playgroud)

然后在<script>标签中我可以做这样的事情:

window.g_details = {{ details|json }};
Run Code Online (Sandbox Code Playgroud)