cari

Rumah  >  Soal Jawab  >  teks badan

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)


高洛峰高洛峰2937 hari yang lalu978

membalas semua(3)saya akan balas

  • 三叔

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

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

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

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


    balas
    0
  • 欧阳克

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

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

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

    balas
    0
  • Batalbalas