2010-11-12 2 views
0

Я пытаюсь сериализации следующий видСериализация Джанго экземпляров модели (querysets со значениями тега)

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

Проблема заключается в том, что Джанго сериализатор ожидает целые модели

ответ

1

Service_images.objects.filter() вернет объект QuerySet для вас, так что в основном обертывание этого в список() не имеет смысла ...

Посмотрите на документы: http://docs.djangoproject.com/en/dev/topics/serialization/#id2 и определите там LazyEncoder.

+0

Я изменил вопрос, чтобы добавить дополнительные вопросы о том, что я пытаюсь сделать. –

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") 
Смежные вопросы