Skip to main content

A flexible quering JSONField and associated form field to store validated JSON in your model.

Project description

Django-JSONField2
===================

``django-json-field2`` is a flexible quering JSONField and associated form field

It is a compilation and adaptation of the following projects

* https://bitbucket.org/schinckel/django-jsonfield
* https://github.com/derek-schaefer/django-json-field
* https://github.com/bradjasper/django-jsonfield
* https://github.com/certae/django-softmachine/blob/master/src/protoLib/fields.py
* https://github.com/frol/django-quering-jsonfield
* http://cramer.io/2009/04/14/cleaning-up-with-json-and-sql/
* http://natebeacham.com/blog/nate-beacham/31/


Feature Description
-------------------
South support
Form field
Form widget
Model field
Python3 support


``django-jsonfield2`` is also compatible with South, Django 1.8 and Python 3.


Installation
------------

Install from PyPI:

``pip install django-jsonfield2``


Source:
-------

``git clone git://github.com/DarioGT/django-jsonfield2.git``


Configuration
-------------

Add ``jsonfield2`` to your ``PYTHONPATH`` and ``INSTALLED_APPS`` setting:

::

INSTALLED_APPS = (
...
'jsonfield2',
...
)

::

Usage
-----

::

from django.db import models
from jsonfield2 import JSONField, JSONAwareManager

class JsonModel(models.Model):
code = models.CharField( blank=False, null=False, max_length=20 )
status = models.CharField( blank=True, null=True, max_length=20 )

info = JSONField(default={})

objects = JSONAwareManager(json_fields = ['info'])

def __str__(self):
return self.code


Json Query
----------

::

...
obj = Person.objects.create(name = "Bill")
obj.info = {
'sex': 'male',
'address': {
'country', 'Canada',
}
}
obj.save()
Person.objects.filter(info__address__country = 'Canada')
>>> [Person: "Bill"]



Usage
-----

Now, it will validate the JSON on entry, and store it as a text in the database. When you instantiate/fetch the object, it will be turned back into a python list/dict/string.



jsonify templatetag
-------------------
This allows you to convert a python data structure into JSON within a template::

{% load jsonify %}

<script>
var foo = {{ bar|jsonify }};
</script>


Tests
----------

``python runtest.py``


Todo
----------

Allow order_by when json criteria are used


License
-------

``django-jsonfield2`` is licensed under the New BSD license.

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

django-jsonfield2-15.06.08.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_jsonfield2-15.06.08-py3.4.egg (30.4 kB view details)

Uploaded Egg

File details

Details for the file django-jsonfield2-15.06.08.tar.gz.

File metadata

File hashes

Hashes for django-jsonfield2-15.06.08.tar.gz
Algorithm Hash digest
SHA256 ba3f118a0bed1926ce6f6345a3c474863013a94e4b7dc7fe090be77c8c56a83d
MD5 71fb75c70fee6f254f4d555aa8fd6afe
BLAKE2b-256 791405110a746460c48b6b74630f84887761f5b1736c4d5b54a0c95191667d1d

See more details on using hashes here.

File details

Details for the file django_jsonfield2-15.06.08-py3.4.egg.

File metadata

File hashes

Hashes for django_jsonfield2-15.06.08-py3.4.egg
Algorithm Hash digest
SHA256 a1e6cdb322f704f5a8046e12e03a5358dad8d3074c0c014456da9e64aac2b187
MD5 f1e931b5193b5f24b967ae96fddd6bdb
BLAKE2b-256 5a2e3d92c684b07a481ce3bbe06f53ae648b395024fc9a9651e4f0a2a5fff6b2

See more details on using hashes here.

Supported by

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