【问题标题】:Jquery looping through Django context objectJquery 循环遍历 Django 上下文对象
【发布时间】: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) 向我显示了这个没有数字的列表?

&lt;QuerySet [&lt;TestPRODM: TFT2&gt;, &lt;TestPRODM: TFT2&gt;]&gt;

【问题讨论】:

  • 您需要将其序列化为 json 以传递给 javascript,以便 javascript 解释为有效对象
  • 在您的代码中,MyData 是 python 中的 QuerySet 对象。正如 charlietfl 所说,它需要转换为 javascript 可以使用的结构。检查此 SO 帖子:stackoverflow.com/q/7165656/7733611
  • 我试图序列化它,它给了我这个错误 , ]> is not JSON serializable

标签: jquery django django-forms each jquery-load


【解决方案1】:

您不能使用 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 %}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-30
    • 2023-03-26
    • 2013-05-13
    • 2017-01-29
    • 2018-09-26
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    相关资源
    最近更新 更多