Javascript Django:在脚本中使用上下文变量

Javascript Django:在脚本中使用上下文变量,javascript,python,django,Javascript,Python,Django,我有一个类视图,它继承自TemplateView,并将上下文变量设置为项目的序列化列表: class MyView(TemplateView): def get_context_data(self, **kwargs): context = super(MyView, self).get_context_data(**kwargs) context['items'] = serializers.serialize("json", items) # assume items i

我有一个类视图,它继承自
TemplateView
,并将上下文变量设置为项目的序列化列表:

class MyView(TemplateView):
  def get_context_data(self, **kwargs):
    context = super(MyView, self).get_context_data(**kwargs)
    context['items'] = serializers.serialize("json", items) # assume items is an existing list
    return context
如中所述,您应该能够通过以下方式从我们的Django模板访问Django变量:

<script>var items = {{ items }};</script>
我还尝试使用过滤器:

<script>var items = {{ items | escapejs }};</script>
我如何解决这个问题


PS:我正在使用Django1.4。(不,我无法将其升级到最新版本)。

模板变量、筛选器字符和筛选器本身之间不能使用空格。所以它应该是
{{items | escapejs}


尽管Sebastian指出,您可能希望使用
{{items | safe}}

模板变量、过滤器字符和过滤器本身之间不能使用空格。所以它应该是
{{items | escapejs}

<script>
  var items = "{{items}}";

</script>
尽管正如塞巴斯蒂安所指出的,您可能想要
{{items | safe}}


<script>
  var items = "{{items}}";

</script>
var items=“{items}}”;

var items=“{items}}”;

尝试使用{{items | safe}}而不是通过模板将json传递到脚本中。您可以添加一个端点视图,该视图序列化所需的数据,并使用类似于
$.getJSON(“您的视图url”,函数(数据){
@SebastianBurzyński我得到了与
escapejs
相同的错误:
无法解析其余部分:“| safe”from“items | safe”
@JackEvans这是我最初做的,我在另一个请求中将这些项作为JSON进行ajax处理,但现在它似乎是多余的,因为我可以在一个请求中完成所有操作。正如Daniel所说,您不能使用空间尝试使用{{items | safe}}而不是通过模板将json传递到脚本中。您可以添加一个端点视图,该视图序列化所需的数据,并使用类似
$.getJSON(“您的|视图| url”,函数(数据){
@SebastianBurzyński我得到了与
escapejs
相同的错误:
无法解析其余部分:“| safe”from“items | safe”
@JackEvans这是我最初做的,我在另一个请求中将这些项作为JSON进行ajax处理,但现在它似乎是多余的,因为我可以在一个请求中完成所有操作。正如Daniel所说,您不能使用空间在你的“|”之间签名。哦,哇,就是这样。你能解释一下空格是什么引起的吗?为什么应该使用
safe
而不是
escapejs
?模板解析器非常基本,只是它不够聪明,无法处理那里的空格。
escapejs
为在JS中有意义的字符添加了额外的转义;你想要相反的te,即完全按照原样传递JSON而不转义。哦,哇,就是这样。你能解释一下空格是什么原因吗?为什么应该使用
safe
而不是
escapejs
?模板解析器非常基本,它只是不够聪明,无法处理那里的空格。
escapejs
为charac添加了额外的转义在JS中有意义的ters;您想要相反的东西,即按原样传递JSON而不转义。
<script>
  var items = "{{items}}";

</script>