【发布时间】:2016-03-16 21:13:10
【问题描述】:
我需要将一些数据传递给 javascript。所以我创建了一个template tag:
from django.utils.safestring import mark_safe
from django import template
import json
register = template.Library()
@register.simple_tag
def mydata():
return mark_safe(json.dumps([("a", 1), ("b", 2)])
然后在我的模板中,
<div id="mydata" data-stuff="{% mydata %}" style="display:none;"></div>
在加载了jquery的js文件中使用:
$('#mydata').data('stuff') //automatically does JSON.parse
问题是来自"a" 和"b" 的引号破坏了HTML 属性语法。我可以简单地更改为单引号 (data-stuff='{% mydata %}'),但是否有更明确的 django 方法将 JSON 注入模板?可能类似于 escape_my_json 或 escape_for_html_attribute 函数。
【问题讨论】:
标签: javascript python json django django-templates