下面是我的代码的简化版本
view.py:
context['colorObj'] = Colors.objects.all()
现在在模板上,我可以通过循环{{colorObj}}来获取对象内部的单个值。但是在JavaScript中,情况并非如此。
如果我想分配给一个变量我的colorObj,它只是不工作(或者也许我错了)。下面是我首先想到的:
JavaScript:
var colorObj = {{colorObj}};
colorObj的值仍然为空,并且{{}}上有警告标记。其他人则建议使用";如var colorObj = "{{colorObj}}";
,但Javascript只是把它作为一个简单的字符串。
另一个建议是:
from json import dumps
...
colorObj = Colors.objects.all()
context['colorObj'] = dumps(colorObj)
Then on JS:
var colorObj = {{colorObj| safe}};
但是我得到了一个错误Object of type QuerySet is not JSON serializable
指向转储行。
注意,我正在使用Django3.1.5
虽然我问如何使用此方法从db获取数据到Javascript,但我继续使用不同的方法,因为它符合我的用例。我用了@Mahdi Firouzjah的答案。
您可以在模板中使用ajax
,后端使用__serialize
。然后使用javascript,你可以使用该对象。