A JSON field for Oracle backends.
Project description
# Oracle Json Field
django_json_field is a reusable Django field that allows you to store validated JSON your database and your model
It is heavily inspired by the Postgres Json Field and this generic json field:
https://raw.githubusercontent.com/dmkoch/django-jsonfield/
## PreRequisites
To use oracle-json-field you will need Django 2.0+ and Python3+
## Installation
Install via pip
pip install oracle-json-field
Or install via source
python setup.py install
## Setup
Update Django settings as follows
INSTALLED_APPS += ('oracle_json_field',)
## Define your models
from oracle_json_field.fields import JSONField
from oracle_json_field.managers import JsonQueryManager
class JsonModel(models.Model):
json = JSONField()
default_json = JSONField(default={"key1": 50})
complex_default_json = JSONField(default=[{"key1": 50}])
empty_default = JSONField(default={})
objects = JsonQueryManager()
## Create and **Natively** query any field in your json
JsonModel.objects.create(json={
"person": {
"age": 25,
"first_name": "Joe",
"last_name": "Blogs",
"address": {
"number": "52",
"street": "Here Terrace",
"post_code": "ABC 123",
"city": "Anytown",
}
}
})
JsonModel.objects.filter_json(json__person__first_name='Joe')
JsonModel.objects.filter_json(json__person__first_name__startswith='J')
JsonModel.objects.filter_json(json__person__address__city__in=['Anytown', 'Sometown'])
JsonModel.objects.filter_json(json__person__age__gte=25)
## Running the test suite:
In order to run the test suite, you will need to create an oracle user
and export the following environment variables:
ORACLE_JSON_HOST
ORACLE_JSON_PORT
ORACLE_JSON_SID
ORACLE_JSON_USER
ORACLE_JSON_PASS
This link describes how to setup the testing user:
https://code.djangoproject.com/wiki/OracleTestSetup
Then run the following command
python setup.py test
You should then see:
running test
Creating test database for alias 'default'...
Creating test user...
System check identified no issues (0 silenced).
......................................
Preserving test database for alias 'default'...
----------------------------------------------------------------------
Ran 38 tests in 4.900s
OK
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for oracle_json_field-0.0.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee9dcab2154d6432420f1aedfe5802710982ac3c90fae82324e086ffc6e002ef |
|
MD5 | 56f22a73b482d5fb43094b50d93ad739 |
|
BLAKE2b-256 | e6c72793ad305842083175f716e6e851e3955e42e5c26220783048c36d7fb48e |