用bootstrap+django+mysql+ajax开发后台管理系统,查询开始日期到结束日期的数据传输到前端页面时遇到的一个小错误,在此记录一下。
错误提示:Object of type SalesListDetail is not JSON serializable
千万不要用model_to_dict这个函数,它处理不了日期,而且不太方便。
def order_listDate_task(request):
dtStart = request.POST.get('dtStart', "") //开始日期
dtEnd = request.POST.get('dtEnd', "") //结束日期
if request.method == "POST": //如果是post请求
//获取到这段时间内的数据对象
obj = models.SalesListDetail.objects.filter(date_sale__range=(dtStart,dtEnd))
if not exists:
return JsonResponse({"status": False, 'error': "没有找到相关数据"})
result = {
"status": True,
//列表一下用list()方便传输
"data":list(obj)
}
//通过Json传输
return JsonResponse(result)
上面的代码是获取到一段时间内的所有消费数据,因为有日期函数导致出错。
解决方法:
解决方法其实很简单,只用在查询语句后面加一个.values()就可以了
obj = models.SalesListDetail.objects.filter(date_sale__range=(dtStart,dtEnd)).values()
其余代码无需更改即可传输成功!



