首頁  >  問答  >  主體

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)


高洛峰高洛峰2918 天前964

全部回覆(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
  • 取消回覆