Skip to main content

Convert django models to sensible json format

Project description

Django JSON Serializer

This is a django serializer that outputs sensible json to be sent to the frontend, rather than intended as a serializer to a file. Here’s an example:

>>> 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"
    }
]

The default serializer (djason.json) spits out a list of objects as a string. You can optionally have it return that list wrapped in an HttpResponse object by passing the httpresponse=True option into serialize.

There is a second serializer that takes two optional parameters, attributes (a dict) and list_name (a string). This serializer returns a dictionary with any key value attributes in the attributes dictionary, and one extra attribute named list_name, which contains the list of objects as returned by the json serializer. For example:

>>> 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"
        }
    ]
}

This project was originally forked from: https://code.google.com/p/wadofstuff/wiki/DjangoFullSerializers

The original code produced a json format that was good for ./manage.py dump and load, but wasn’t as suitable for sending data to a web client for processing via ajax.

What’s new

Version 0.2 - Added a serializer that allows including the serialized object inside an object with extra attributes - Added an ‘httpresponse’ option that will automatically wrap the serialized stream in an HttpResponse object Version 0.1

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djason-0.2.1.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

djason-0.2.1.linux-i686.tar.gz (15.4 kB view details)

Uploaded Source

File details

Details for the file djason-0.2.1.tar.gz.

File metadata

  • Download URL: djason-0.2.1.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for djason-0.2.1.tar.gz
Algorithm Hash digest
SHA256 ea52ab35e7a9f6e392d6b01ca0cd911abf8baba971c43a6b58fcede63b63497a
MD5 f08ae76c35caeb38a72428c932c7f3b6
BLAKE2b-256 c0009ce9c13eb883236892c182e878f13ce43b996709fe4e46a67ee49d72cd97

See more details on using hashes here.

File details

Details for the file djason-0.2.1.linux-i686.tar.gz.

File metadata

File hashes

Hashes for djason-0.2.1.linux-i686.tar.gz
Algorithm Hash digest
SHA256 cf7941add51129b343127f8294849e788b2de091738f89907e64624bcb94f4d9
MD5 ab6e59680e4f6d995300bf55b52358d5
BLAKE2b-256 41db9f948266878315e0c7e88996f2f025ece4054c3d4423b1dc91c43c9c12a1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page