簡體   English   中英

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM