序列化Django模型实例(带有values标记的查询集)

序列化Django模型实例(带有values标记的查询集),django,json,Django,Json,我正在尝试序列化以下视图 def headerimage(request): service_view = list( Service_images.objects.filter(service='7')) return render_to_response ('headerimage.html',{'service_view':service_view}, context_instance=RequestContext(request)) 这应该以如下所示的形式返回JSON {"fol

我正在尝试序列化以下视图

def headerimage(request):

service_view = list( Service_images.objects.filter(service='7'))


return render_to_response ('headerimage.html',{'service_view':service_view}, context_instance=RequestContext(request))
这应该以如下所示的形式返回JSON

{"folderList":
    ["with schmurps"],
 "fileList":
    ["toto006.jpg",
     "toto012.jpg",
     "toto013.jpg"
    ]
}
然而,文件夹列表可以是一个,或者在这种情况下将是“7”,因为这是图像的标题(“文件夹”)

在考虑了下面的答案后,我想出了

def headerimage(request):

service_view =  Service_images.objects.filter(service='7')
image = serializers.serialize("json", service_view)

mini = list(serializers.deserialize("json", image))


return HttpResponse(image, mimetype='application/javascript')
然而,我仍然在寻找最简单的方法来做到这一点

service_view =  Service_images.objects.filter(service='7').values('image')

问题是django序列化程序需要整个模型

服务\u images.objects.filter()将为您返回一个QuerySet对象,因此将其包装到list()中基本上没有意义


查看文档:,并使用其中定义的LazyEncoder。

当json格式要求与我的模型表示不匹配时,我通常遵循以下方法

from django.utils import simplejson as json

def headerimage(request):

    service_view =  Service_images.objects.filter(service='7')

    ret_dict = {
       "folderList":
          [sv.image.folder for sv in service_view],
       "fileList":
          [sv.image.file for sv in service_view]
    }
    return (json.dumps(ret_dict), mimetype="application/json")

我修改了这个问题,添加了关于我试图做什么的附加查询。