首页 > 解决方案 > 如何 JSON 解析 Django 查询集?

问题描述

所以我试图解析我的 Django 查询集中的每个对象,并通过 JavaScript 处理数据。下面是我的代码(简化):
views.py(使用 Django Paginator,但基本思想是一样的。)

def main_page(request):
    all_contents = Contents.objects.all()
    paginator_contents = Paginator(contents,10)
    page = request.GET.get('page')
    all_contents_paginated = paginator_contents.get_page(page)

    context = {
            'contents' : contents,
            'all_contents_paginated' : all_contents_paginated
        }

    return render(request, 'main/home.html', context)

模板

{% for c in all_contents_paginated %}
<div class="text-m">
    {{c.author}}
</div>
<div class="text-s" onclick="DetailModal('{{c}}')">
    {{c.body}}
</div>
{% endfor %}

<script>
    function DetailModal(c) {

    }
</script>

现在显然,'{{c}}'由于它是字符串,因此无法解析为 JSON。我想将其解析为 JSONfunction DetailModal()并在单独的模态元素中显示数据,或者对每个数据执行任何其他操作。但我不知道如何解析 Django 查询集中的每个对象。

有任何想法吗?谢谢。

标签: pythonjsondjango

解决方案


你只需修改你的脚本来解析你的项目:

<script>
    function DetailModal(c) {
       const obj = JSON.parse(c);
       console.log(obj.author);   
       console.log(obj.body);
    }
</script>

推荐阅读