我正在尝试将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
我知道我可以遍历所有对象并创建一个手动的词典列表,但我希望有更好的方法来做到这一点。有吗?
答案 0 :(得分:5)
from django.core import serializers
data = serializers.serialize('json', User.objects.all())
您可以了解如何获取有关反序列化的数据:
import json
json.loads(data)
答案 1 :(得分: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")