我的模型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([{"pk": 2, "model": "programs.lop",
我一直在这方面工作的时间比我应该的时间长,但是我无法随心所欲。帮助
答案 0 :(得分:1)
您在lop.objects.all()的json表示上应用了endsWithSuffix。你不应该为{{lop.name}}测试endsWithSuffix吗?