我想序列化我的Sounds模型,以便在我的game.js文件中使用。这就是我所拥有的。
views.py
def index(request):
context = {'sounds': serializers.serialize('json', Sounds.objects.all()) }
return render(request, 'index.html', context)
的index.html
<button type="submit" onclick="main()">Let's Start!</button>
game.js
function main(){
var data = {{ context|safe }};
// print all objects here
}
它不起作用 - 不确定问题是什么。基本上,当我单击index.html中的按钮时,它应该转到main函数(这部分工作),然后使用模型中的对象设置变量数据,以便我可以使用它。此外,是否可以过滤数据中的对象,以便我有一个只有id = 1的对象的列表?我想在game.js中执行此操作(不在views.py或其他地方)。
答案 0 :(得分:1)
如果没有实际的错误日志,很难说串行器的确切问题是什么。如果您实际上可以打开运行django的控制台,它应该在出现错误时显示错误。由此可以更好地诊断问题。将来这样做是明智的,否则这样的问题将会被低估。
是的,您可以使用过滤功能在Javascript中过滤数组。该函数通过遍历将传递给函数的数组中的对象来创建一个新数组,如果它应该存在于新数组中,则应该返回true,否则应该返回false。
因此,对于您提供的示例,它将如此显示:
sounds = sounds.filter((sound) => { sound.id === 1; });
注意你必须分配新数组,原始数组不会改变运行函数本身。
我强烈建议您在Slack Overflow上创建线程之前自己搜索这些问题的解决方案,否则您的声誉会迅速降低。