在Javascript中使用django变量

Using django variables in Javascript

本文关键字:django 变量 Javascript      更新时间:2024-01-22

我的模型lop包含一个程序列表,我将这些程序用于不同的目的。我想使用名称字段作为javascript函数的参数。

我修改了一些lop,所以修改后的版本在名称末尾有一个"ver2"。Javascript函数的作用是检查程序的后缀"ver2"。javascript最初是从这里找到的。

我读到一些类似的问题,其中一个问题说我需要序列化对象

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

在我看来.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;,

我做这件事的时间比我应该做的要长,但我做不到。救命。

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