【发布时间】:2015-04-21 08:42:33
【问题描述】:
我的模型 lop 包含我用于不同目的的程序列表。我想使用名称字段作为 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",
我在这种方式上工作的时间比我应该做的要长,但我无能为力。帮助。
【问题讨论】:
-
您在开始
<script>标记之前缺少结束{% endfor %} -
@Brandon。抱歉,我的错字(我复制的时间不够长,但它在原始代码中)。修正了问题以匹配更正。
标签: javascript html json django