[英]Django: using context variable in a script
我有一个继承自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>
但是我收到一个JavaScript错误,我认为这是由于自动转义引起的:
Uncaught SyntaxError: Unexpected token &
我也尝试使用过滤器:
<script>var items = {{ items | escapejs }};</script>
只找到另一个错误,这次是Django错误( TemplateSyntaxError
):
Could not parse the remainder: ' | escapejs' from 'items | escapejs'
我该如何解决这个问题?
PS:我正在使用Django 1.4。 (不,我不能将其升级到最新版本)。
您不能在模板变量,过滤器字符和过滤器本身之间使用空格。 因此应该是{{ items|escapejs }}
。
尽管正如塞巴斯蒂安(Sebastian)指出的那样,您可能想要{{ items|safe }}
来代替。
<script>
var items = "{{items}}";
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.