{ "info": { "author": "Manolis Tsoukalas", "author_email": "emmtsoukalas@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "# Django JSON Schema\n[![Build Status](https://travis-ci.org/m19t12/django-json-schema.svg?branch=master)](https://travis-ci.org/m19t12/django-json-schema)\n[![Coverage Status](https://coveralls.io/repos/github/m19t12/django-json-schema/badge.svg?branch=master)](https://coveralls.io/github/m19t12/django-json-schema?branch=master)\n\nDjango JSON Schema Field.\n\n## Table of content\n- [Introduction](#introduction)\n- [Installing](#installing)\n- [Usage](#usage)\n- [TODO](#TODO)\n\n## Introduction\nDjango JSON Schema is a library for displaying and validating \npostgresql jsonb data.\n\n## Installing\n```\npip install django_jsonb_schema\n```\n\n## Usage\nFirst you create a schema class.\n\nSchema class is a django abstract model class (abstract = True).\n\nYou can import SchemaMeta class or create an abstract class.\n\nIf you want to validate and display nested data you can do this with the SchemaForeignKey.\n\nFor example to validating this dict data.\n```python\n{\n 'name': 'parent',\n 'age': 50,\n 'son': {\n 'name': 'son',\n 'age': '15',\n 'school': {\n 'name': 'school',\n 'address': 'school address'\n }\n }\n}\n```\nWe create this three schema classes.\n\nWe can use any django model or third party field.\n```python\n#schemas.py\nfrom json_schema.models import SchemaForeignKey, SchemaMeta\n\n\nclass SchoolSchema(models.Model):\n name = models.CharField(max_length=128)\n address = models.CharField(max_length=128)\n Meta = SchemaMeta()\n\n\nclass SonSchema(models.Model):\n name = models.CharField(max_length=128)\n age = models.IntegerField()\n school = SchemaForeignKey(SchoolSchema, on_delete=models.CASCADE)\n Meta = SchemaMeta()\n\n\nclass ParentSchema(models.Model):\n name = models.CharField(max_length=128, default=\"test\")\n age = models.IntegerField()\n son = SchemaForeignKey(SonSchema, on_delete=models.CASCADE)\n Meta = SchemaMeta()\n```\nAfter we create our model.\n```python\n#models.py\nfrom django.db import models\n\nfrom json_schema.fields import JSONSchemaField\nfrom .schemas import ParentSchema\n\nclass JSONSchemaModel(models.Model):\n simple_text = models.CharField(blank=True, null=True, max_length=256)\n simple_int = models.IntegerField(blank=True, null=True)\n parent = JSONSchemaField(schema=ParentSchema, blank=True)\n```\n\n## TODO\nSupport array elements.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/m19t12", "keywords": "", "license": "GPL License", "maintainer": "", "maintainer_email": "", "name": "django-jsonb-schema", "package_url": "https://pypi.org/project/django-jsonb-schema/", "platform": "", "project_url": "https://pypi.org/project/django-jsonb-schema/", "project_urls": { "Homepage": "https://github.com/m19t12" }, "release_url": "https://pypi.org/project/django-jsonb-schema/0.7.0/", "requires_dist": null, "requires_python": "", "summary": "Django JSON Schema Field.", "version": "0.7.0" }, "last_serial": 4698391, "releases": { "0.6.0": [ { "comment_text": "", "digests": { "md5": "020eb5e7004c1c53a5f6f9a0b8fb4c0d", "sha256": "4997f9173674a6de50508133f93b68bc29a8e65f6cc40e099a5b5ad4d723b425" }, "downloads": -1, "filename": "django_jsonb_schema-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "020eb5e7004c1c53a5f6f9a0b8fb4c0d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17677, "upload_time": "2019-01-11T16:16:58", "url": "https://files.pythonhosted.org/packages/4b/70/5ed098916366c61287cd6362e6ed78f50b7e66153c217833a0bb383bb513/django_jsonb_schema-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0959313d97c542dffdad3c8842a3cef2", "sha256": "dd59f12732a6a72e7d96ae42e714bf4e83f075ebc498def5079463a7b3362359" }, "downloads": -1, "filename": "django-jsonb-schema-0.6.0.tar.gz", "has_sig": false, "md5_digest": "0959313d97c542dffdad3c8842a3cef2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4239, "upload_time": "2019-01-11T16:17:00", "url": "https://files.pythonhosted.org/packages/01/23/0407189d91f6d5381a826ea5044b78807eadf2b78035519dfa9c51001e0f/django-jsonb-schema-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "f63acf63c4dd1a2c60adc5278dfb1abd", "sha256": "4c8a8775f5f0cba823f574c37a0d12693fa2aa4d76fe449a397243cc29d14bec" }, "downloads": -1, "filename": "django_jsonb_schema-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f63acf63c4dd1a2c60adc5278dfb1abd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17918, "upload_time": "2019-01-15T10:42:45", "url": "https://files.pythonhosted.org/packages/ca/1a/a9788bc1a6d2dd69f8920c9a1c4f800c8ac2eecf8dac9d6581f999e9a258/django_jsonb_schema-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03e19a0b55d5903bbe6a619122166c34", "sha256": "e85f228bf2a75b9bfd5f0104712653730cdbb9af026afc2de93456eb6aefa88f" }, "downloads": -1, "filename": "django-jsonb-schema-0.7.0.tar.gz", "has_sig": false, "md5_digest": "03e19a0b55d5903bbe6a619122166c34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4431, "upload_time": "2019-01-15T10:42:47", "url": "https://files.pythonhosted.org/packages/b6/75/9832e1f23c77e5eb77e90bccd7c79da8003a0a58c7fa9ddf040239f0a70f/django-jsonb-schema-0.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f63acf63c4dd1a2c60adc5278dfb1abd", "sha256": "4c8a8775f5f0cba823f574c37a0d12693fa2aa4d76fe449a397243cc29d14bec" }, "downloads": -1, "filename": "django_jsonb_schema-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f63acf63c4dd1a2c60adc5278dfb1abd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17918, "upload_time": "2019-01-15T10:42:45", "url": "https://files.pythonhosted.org/packages/ca/1a/a9788bc1a6d2dd69f8920c9a1c4f800c8ac2eecf8dac9d6581f999e9a258/django_jsonb_schema-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03e19a0b55d5903bbe6a619122166c34", "sha256": "e85f228bf2a75b9bfd5f0104712653730cdbb9af026afc2de93456eb6aefa88f" }, "downloads": -1, "filename": "django-jsonb-schema-0.7.0.tar.gz", "has_sig": false, "md5_digest": "03e19a0b55d5903bbe6a619122166c34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4431, "upload_time": "2019-01-15T10:42:47", "url": "https://files.pythonhosted.org/packages/b6/75/9832e1f23c77e5eb77e90bccd7c79da8003a0a58c7fa9ddf040239f0a70f/django-jsonb-schema-0.7.0.tar.gz" } ] }