登录

django 怎么样把 object 转为 json str

def login(request):
    user = UserInfo(username="张三", password="123456", nickname="一个人")
    result = json.dumps(user)
    # 需要result 是 {"username":"张三","password":"123456","nickname":"一个人"}
    return HttpResponse(result)


# Django
高洛峰 高洛峰 2713 天前 829 次浏览

全部回复(3) 我要回复

  • 三叔

    三叔2016-11-14 10:28:55

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

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

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


    回复
    0
  • 欧阳克

    欧阳克2016-11-14 10:28:10

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

    回复
    0
  • 三叔

    三叔2016-11-14 10:27:52

    可以在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())即可

    回复
    0
  • 取消 回复 发送