将django模型转换为合理的json格式
djason的Python项目详细描述
django json序列化程序
这是一个django序列化程序,它输出要发送到 前端,而不是用作文件的序列化程序。下面是一个示例:
>>> print s.serialize(User.objects.all(), relations=['groups'], excludes=['user_permissions'], indent=4) [ { "username": "dusty", "first_name": "", "last_name": "", "is_active": true, "is_superuser": true, "is_staff": true, "last_login": "2010-11-26 13:27:07", "groups": [ { "pk": 1, "model": "auth.group", "name": "hello", "permissions": [] } ], "pk": 1, "model": "auth.user", "password": "sha1$8f816$b4c8139100c314b46f1ca931858e4d6d5c61917f", "email": "dusty@linux.ca", "date_joined": "2010-11-22 17:55:40" } ]
默认序列化程序(djason.json)将对象列表作为字符串输出。 您可以选择让它返回包含在httpresponse对象中的列表 通过将httpresponse=true选项传递给serialize。
第二个序列化程序接受两个可选参数,属性(a dict)和list_name(字符串)。此序列化程序返回包含 属性字典中的键值属性,以及一个额外的属性 named list_name,包含json返回的对象列表 序列化程序。例如:
>>> print s.serialize(User.objects.all(), relations=['groups'], excludes=['user_permissions'], indent=4, attributes={'somekey': 'somevalue'}, list_name="users") { "somekey": "somevalue", "users": [ { "username": "dusty", "first_name": "", "last_name": "", "is_active": true, "is_superuser": true, "is_staff": true, "last_login": "2010-11-26 13:27:07", "groups": [ { "pk": 1, "model": "auth.group", "name": "hello", "permissions": [] } ], "pk": 1, "model": "auth.user", "password": "sha1$8f816$b4c8139100c314b46f1ca931858e4d6d5c61917f", "email": "dusty@linux.ca", "date_joined": "2010-11-22 17:55:40" } ] }
该项目最初由以下部门提供: https://code.google.com/p/wadofstuff/wiki/DjangoFullSerializers
原始代码生成了一个json格式,该格式适合./manage.py dump和 加载,但不适合将数据发送到Web客户端进行处理 通过ajax。
新功能
版本0.2 -添加了一个序列化程序,该序列化程序允许在 具有额外属性的对象 -添加了一个“httpresponse”选项,该选项将自动包装序列化的 HttpResponse对象中的流 版本0.1
- 首次公开发布
- 从https://code.google.com/p/wadofstuff/wiki/DjangoFullSerializers 分叉
- 用https://code.google.com/p/wadofstuff/issues/detail?id=4 修补
- 修改为输出更合理的json供客户端使用
- 把它变成了django应用程序
- 添加了用于呈现原始django的模板标记