[英]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.