序列化Django模型

时间:2018-04-16 23:35:45

标签: javascript python django

我想序列化我的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或其他地方)。

1 个答案:

答案 0 :(得分:1)

如果没有实际的错误日志,很难说串行器的确切问题是什么。如果您实际上可以打开运行django的控制台,它应该在出现错误时显示错误。由此可以更好地诊断问题。将来这样做是明智的,否则这样的问题将会被低估。

是的,您可以使用过滤功能在Javascript中过滤数组。该函数通过遍历将传递给函数的数组中的对象来创建一个新数组,如果它应该存在于新数组中,则应该返回true,否则应该返回false。

因此,对于您提供的示例,它将如此显示:

sounds = sounds.filter((sound) => { sound.id === 1; });

注意你必须分配新数组,原始数组不会改变运行函数本身。

我强烈建议您在Slack Overflow上创建线程之前自己搜索这些问题的解决方案,否则您的声誉会迅速降低。