2010-11-12 23 views
0

我試圖序列下面的視圖序列化Django的模型實例(具有值標籤查詢集)

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)) 

據說這是爲了在下面

{"folderList": 
    ["with schmurps"], 
"fileList": 
    ["toto006.jpg", 
    "toto012.jpg", 
    "toto013.jpg" 
    ] 
} 

然而所示的形式返回JSON,該文件夾列表可以是一個或在這種情況下將是「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的序列化期待整個模型

回答

1

Service_images.objects.filter()將爲您返回一個QuerySet對象,所以基本上將其包裝到列表()是沒有意義的...

看看文檔:http://docs.djangoproject.com/en/dev/topics/serialization/#id2,並使用定義的LazyEncoder。

+0

我修改了這個問題,增加了關於試圖做什麼的附加查詢。 – 2010-11-13 08:23:04

0

我通常按照下面的方式,當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") 
相關問題