将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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java搜索具有外键的JPA实体的约定是什么?   java事务没有使用事务和嵌套方法的2个实例回滚   SpringBootJavaMessageFormat。使用umlauts格式(ä/ö/ü)   java如何通过字符串在sqlite中搜索列   JAVAlang.ClassNotFoundException:org。冬眠Hibernate4的例外情况   java消息正文在Gmail中被弄乱了   java Apache Ignite未使用空值更新缓存   Java正则表达式未捕获组   java onBackPressed();除非我叫super否则不行。onBackPressed();两次密码   java CustomAlertDialog在删除数据库记录后未完成其进程   C++中的迭代器(Stl)与java,是否存在概念上的区别?   Java在不知道字符编码的情况下将字节[]转换为字符串   来自本地WSDL文件的java Web服务客户端   java工具可用于在一个位置聚合所有项目相关信息   java在Netbeans中的maven项目中设置依赖项