在Javascript脚本标记内创建动态Django模板变量

时间:2016-08-20 19:52:49

标签: django django-templates

这对于我们已经知道的固定变量来说已经足够了。

<script type="text/javascript"> 
   var a = "{{someDjangoVariable}}";
</script>

我有一个场景,我想动态创建变量。 例如 -

<script type="text/javascript"> 
for (i = 1, bar = bar , textb = ""; i <= bar ; i++) 
   {
    for (j = 1, category = category , textc = ""; j <= category ; j++)
     {
      var a = "{{someDjangoVariable + i + j}}";
      // Do some more stuff here in UI - create input field dynamically
     }
   }
</script>

在我的查询中,dict可以说我有这种结构(2 * 2矩阵结构) - {'someDjangoVariable11' : 1, 'someDjangoVariable12' : 23, 'someDjangoVariable21': 256, 'someDjangoVariable22': 31}

请建议是否有办法动态创建变量。

P.S - 矩阵的列和行可能因用户输入而异。它可以是2 *34 * 31 * 5等。

1 个答案:

答案 0 :(得分:0)

由于客户端变量无法返回服务器,因此无法使用此方法。我建议的是从服务器发回变量字典。

服务器端:

data = {'foo': '1', 'bar': '2'}
return render('template.html', data)

客户端:

<script> var data = {{data|json|safe}}; </script>

然后您可以使用原始词典键在javascript中访问它。