2013-04-22 66 views
1

我試圖將django模型轉儲爲JSON格式。我一直試圖做這樣的:django webapi:將django模型轉儲爲JSON

import json 
from api.models import User 
from django.http import HttpResponse 

def users(request): 
    users = User.objects.all() 
    return HttpResponse(json.dumps(users), content_type="application/json") 

但它拋出以下錯誤:

[<User: Paul McCartney>, <User: John Lennon>, <User: George Harrison>, <User: Ringo Starr>] is not JSON serializable 

我知道我可以通過所有對象進行迭代,並創建詞典的手動名單,但我希望有任何更好的方式來做到這一點。在那兒?

回答

5
from django.core import serializers 

data = serializers.serialize('json', User.objects.all()) 

你可以得到你是如何得到的反序列化這些數據的想法:

import json 
json.loads(data) 
+0

很簡單,謝謝 – ducin 2013-04-22 20:37:33

0

我知道這是一個老問題,但我發現,鑄造它作爲一個列表允許它被序列化。

import json 
from api.models import User 
from django.http import HttpResponse 

def users(request): 
    users = list(User.objects.all()) 
    return HttpResponse(json.dumps(users), content_type="application/json")