Django中常用到将Model查询结果转为Json格式数据。查询结果一般为QuerySet(Model类对象集合)或者单个Model类对象,可以使用Model的 __dict__
属性,将Model数据转为Json格式数据。
方法
1. 单条数据格式
my_model = MyModel.objects.get( id=request.GET.get( "model_id" ) )
# 打印 my_model.__dict__ 发现有一个"_state",
# 不是我们Model定义的内容,需要去除
my_model.__dict__.pop( "_state" ) #需要去除,否则不能 Json化
return JsonResponse( my_model.__dict__, safe=False )
2. 多条数据
使用for循环,按单条数据方式处理即可,最后做成Json格式。
lst_my_model = MyModel.objects.all()
model_data = []
for item in lst_my_model:
item.__dict__.pop( "_state" )
model_data.append( item )
result = { "data": model_data }
return JsonResponse( result, safe=False )