在Javascript中使用django变量

时间:2015-02-19 20:09:21

标签: javascript html json django

我的模型lop包含我用于不同目的的程序列表。我想使用name字段作为javascript函数的参数。

我修改了一些我的lops,因此修改后的版本在其名称的末尾有一个“ver2”。 Javascript函数的作用是检查程序的后缀“ver2”。 javascript最初是从here找到的。

我读了一些类似的问题,其中一个人说I need to serialize the object

编辑:views.py的扩展视图,Javascript控制台开始工作,现在已包含在内。

在我的views.py(更新)

  from django.core import serializers
           .      
           .
           .
           .
  def loppage(request):

  jsondata = serializers.serialize('json', lop.objects.all(),fields=('name'));

  ## get programs
  data = []
  types = Type.objects.all()
  for type in types:
  data.append([type.title, type.script_set.all()])
  context = {'lop': Lop.objects.all(), 'cat': data, 'jsondata':jsondata}

  ## render list
  return render(request, 'loppage.html', context)

在我的模板文件中:  Javascript / HTML(loppage.html):

<script>
function endsWithsuffix(progname, suffix) {
return progname.indexOf(suffix, progname.length - suffix.length) !== -1;} 

  </script> 

        .
        .
        .
        .
   {% for lop in type %}
      <p id="Options"><i>{{lop.options}}</i></p>
      <p id="Id"><a href="/ne/{{lop.id}}/">{{lop.name}}</a></p>

   <script type="text/javascript">
     if  (endsWithsuffix({{jsondata}}, 'ver2'))   {    //This I've tried with and without quotation marks, and with lop.name with and without quotation marks
         document.getElementById('Options').style.visibility = 'visible';
         document.getElementById('Id').style.visibility = 'visible';
    }

     else {
         document.getElementById('Options').style.visibility = 'hidden';
         document.getElementById('Id').style.visibility = 'hidden';
       }
    </script>
   {% endfor %}

但无论出于何种原因,脚本似乎没有加载(它加载就像脚本不是一样)。

正如wardk所说,我现在已经包含了我的Javascript控制台,可以在这里看到

SyntaxError: invalid property id loppage:56:28

在同一行上重复出现同样的错误,如下所示

调试器控制台突出显示

if  (endsWithsuffix([{&quot;pk&quot;: 2, &quot;model&quot;: &quot;programs.lop&quot;,

我一直在这方面工作的时间比我应该的时间长,但是我无法随心所欲。帮助

1 个答案:

答案 0 :(得分:1)

您在lop.objects.all()的json表示上应用了endsWithSuffix。你不应该为{{lop.name}}测试endsWithSuffix吗?