在做前端ajax异步加载数据库数据的时候出现Object of type ‘QuerySet’ is not JSON serializable,大概意思是’QuerySet’对象不是json数据类型。
views.py
from django.shortcuts import render, redirect, reverse
from django.http import JsonResponse
from .models import Student
def index(request):
return render(request, 'index.html')
def ajax_handle(request):
students = Student.objects.all()
data = {
'students': students
}
return JsonResponse(data)
urls.py
from django.urls import path, include
from . import views
app_name = 'new'
urlpatterns = [
path('index/', views.index, name='index'),
path('ajax_handle/', views.ajax_handle, name='ajax_handle'),
]
index.html
<pre class="prettyprint"><code class="has-numbering" onclick="mdcp.copyCode(event)" style="position: unset;"><script src="{% static 'primary/js/jquery-1.8.2.min.js' %}"></script>
<script type="text/javascript">
{#当页面加载完毕,执行ajax#}
$(function() {
$.ajax({
'url': '/ajax_handle',
'type': 'get', // 默认参数可加可不加
'dataType': 'json',
// 'data': '', // 请求参数
'async': false // 默认为true 异步加载,false为同步加载
}).success(function (data) {
{#// 这里用于处理数据#}
alert(data)
})
})
<div class="hljs-button {2}" data-title="复制" data-report-click="{"spm":"1001.2101.3001.4259"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li></ul></pre>
<h2><a name="t0"></a><a id="_57"></a>出错信息:</h2>
<p><img src="https://img-blog.csdnimg.cn/20190724102808508.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1bWFuX3NvdWw=,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述"></p>
<h2><a name="t1"></a><a id="_60"></a>修改</h2>
view.py
from django.shortcuts import render, redirect, reverse
from django.http import JsonResponse
from django.core import serializers
from .models import Student
def index(request):
return render(request, 'index.html')
def ajax_handle(request):
# 处理QuerySet
students = serializers.serialize("json", Student.objects.all())
data = {
'students': students
}
return JsonResponse(data)
最终效果

版权声明:本文为longe20111104原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。