Jquery 循环遍历 Django 上下文对象
Posted
技术标签:
【中文标题】Jquery 循环遍历 Django 上下文对象【英文标题】:Jquery looping through Django context object 【发布时间】:2020-11-08 07:52:30 【问题描述】:我有一个 html 格式的数据列表。从 Django views.py 作为标签(Mydata)。
在 HTML 页面中,我想使用 Jquery 遍历该列表
我尝试了一些方法,但没有奏效这是我的看法
def weltestprd(request, WeelN):
MyData=TestPRODM.objects.filter(WellID__exact=WeelN)
context=
'MyData':MyData,
return render(request,'Home/Prodtest.html',context)
这是我的 HTML 页面,循环工作正常。
% for Values in MyData %
<p>Values.Id</p>
<p>Values.Name</p>
<p>Values.Prod</p> <!-- decimal number-->
% endfor %
我想在使用 jquery 的 consol 中看到相同的结果 我试过了,但没有按照我的方式工作(列表中的字符串和十进制数字)
% block custom_js %
<script >
var my_dataLoop = (" MyData ")
console.log(my_dataLoop)
$.each(my_dataLoop, function(key, value)
console.log(value);
)
</script>
% endblock custom_js %
console.log(my_dataLoop) 向我显示了这个没有数字的列表?
<QuerySet [<TestPRODM: TFT2>, <TestPRODM: TFT2>]>
【问题讨论】:
您需要将其序列化为 json 以传递给 javascript,以便 javascript 解释为有效对象 在您的代码中,MyData 是 python 中的 QuerySet 对象。正如 charlietfl 所说,它需要转换为 javascript 可以使用的结构。检查此 SO 帖子:***.com/q/7165656/7733611 我试图序列化它,它给了我这个错误您不能使用 jquery 循环 Django Queryset 对象。您可以做的是使用 django 循环并使用 jquery 打印。代码不准确,但可能看起来像这样:
% block custom_js %
<script >
% for Values in MyData %
console.log("Id: " + Values.Id + ", Name: " + Values.Name + ", Prod: " + Values.Prod);
% endfor %
</script>
% endblock custom_js %
【讨论】:
以上是关于Jquery 循环遍历 Django 上下文对象的主要内容,如果未能解决你的问题,请参考以下文章