django 怎么样把 object 转为 json str
高洛峰
高洛峰 2016-11-14 10:26:37
0
3
1005
def login(request):
    user = UserInfo(username="张三", password="123456", nickname="一个人")
    result = json.dumps(user)
    # 需要result 是 {"username":"张三","password":"123456","nickname":"一个人"}
    return HttpResponse(result)


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all(3)
三叔

Django 的 object 不能直接被序列化成 json ,因为 Django model 里有些 field 没有对应的序列器做序列化操作(比如 DateTimeField )

嗯,这时候你需要这个:https://github.com/bluedazzle/django-simple-serializer

当然你也可以用 django-rest-framework,不过这个使用门槛高一些,需要一些学习成本


学霸

simple-rest-framework 用来做请求接口很不错,但是rest-framework支持的模式可能更多,权限,view等等

三叔

可以在UserInfo的 model 里写一个to_dict()方法,例如:

def to_dict(self):
    data = {}
    for f in self._meta.concrete_fields:
        data[f.name] = f.value_from_object(self)
    return data

然后,result = json.dumps(user.to_dict())即可

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template