Django:在脚本中使用上下文变量
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>
相关文章:
- 将函数的上下文应用于javascript变量
- 执行上下文和变量对象在 JavaScript 中实际上是一回事吗?
- 类方法中的上下文作为变量
- 在Ember.js中的方法之间共享变量上下文
- js脚本是否可以在同一个文件中获得在EJS上下文/页面中编写的变量
- javascript中的全局和局部变量执行上下文
- 在javascript上使用这个而不是上下文变量有什么缺点吗
- 在 Django 上下文变量上使用 Javascript 搜索算法
- 上下文的变量.填充文本
- 变量“this”上下文在重新赋值变量后未更新
- 画布的奇怪行为 上下文变量定义位置导致选项卡处于非活动状态时画布呈现冻结
- ES6 循环和 forEach 中的上下文和变量范围
- 在Jquery中定义Django上下文变量时出错
- Handlebars模板,使用字符串键访问上下文变量
- Django.在Jquery中使用上下文变量的Json文件
- Django:在脚本中使用上下文变量
- 如何在django模板更改后通过AJAX调用更新加载上下文变量
- 在django模板的内部CSS中使用上下文变量
- Meteor中路由器中的上下文变量
- 在Flask中使用AJAX添加上下文变量