2010-02-23 63 views
2

乾草,串行器沒有返回JSON對象JSON序列化不Django的工作

make = Make.objects.filter(slug__exact=make) 
    models = Model.objects.filter(make=make).values('slug','name') 

    json_models = serializers.get_serializer("json")() 
    json_models.serialize(models) 

    return HttpResponse(json_models.getvalue()) 

我得到一個錯誤

'dict' object has no attribute '_meta' 

任何想法?

回答

4

作爲其他答案的提示,其原因.values(...)返回一個列表和serializers是爲查詢集。但是你仍然可以做到這一點,而無需原SimpleJSON很簡單:

queryset = Model.objects.filter(make__slug__exact=make) 
return serializers.serialize("json", queryset, fields=('slug', 'name')) 

我們基本上告訴序列做野限制,而不是讓查詢集做。我在那裏使用了一些快捷方式將查詢切換到一行,但這取決於您。