将Django对象传递给Javascript



下面是我的代码的简化版本

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,你可以使用该对象。

最新更新