{ "info": { "author": "Mikhail Podgurskiy", "author_email": "kmmbvnr@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Framework :: Django :: 2.2", "Framework :: Django :: 3.0", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "=======================\nDjango JSONField-Schema\n=======================\n\nExpose Django JSONField data as virtual model fields\n\nUse ModelForm and ModelAdmin as usual. Perform simple queries. Migrate to real\ntable columns when needed without code change.\n\nSuitable to store dumb business data, quick prototypes without DB migrations,\nand replace multi-table inheritance joins.\n\n.. image:: https://img.shields.io/pypi/v/django-jsonfield-schema.svg\n :target: https://pypi.python.org/pypi/django-jsonfield-schema\n\n.. image:: https://img.shields.io/pypi/pyversions/django-jsonfield-schema.svg\n :target: https://pypi.python.org/pypi/django-jsonfield-schema\n\n.. image:: https://img.shields.io/pypi/djversions/django-jsonfield-schema.svg\n :target: https://pypi.python.org/pypi/django-jsonfield-schema\n\n*Use with caution! Replacing relational structures with JSON data should be\nmindfull architecture decision.*\n\nWorks with any JSONField `django.contrib.postgres `_,\n`django-annoying `_,\n`django-mysql `_,\nupcoming django `Cross-db JSONField `_\n\n*Work in progress* part of https://json-schema.org definitions are only supported.\n\nQuick start\n===========\n\n.. code:: python\n\n from django import forms\n from django.contrib import admin\n from django.db import models\n from jsonfield_schema import JSONSchema\n\n class EmployeeSchema(JSONSchema):\n full_name = {\n \"type\": \"string\"\n }\n\n hire_date = {\n \"type\": \"string\",\n \"format\": \"date\"\n }\n\n salary = {\n \"type\": \"number\",\n \"multiplyOf\": 0.01,\n }\n\n class Employee(models.Model):\n _schema = EmployeeSchema()\n data = JSONField(default={})\n\n class EmployeeForm(forms.ModelForm):\n class Meta:\n model = Employee\n fields = ['full_name', 'hire_date', 'salary']\n\n @admin.register(Employee)\n class EmployeeAdmin(admin.ModelAdmin):\n list_display = ['full_name', 'hire_date']\n fields = ['full_name', ('hire_date', 'salary')]\n\n\nDemo\n====\n\nThe demo shows how to handle multiple User types within single table with\nJSONField and `Django-Polymodels `_ proxies.\n\n.. code:: bash\n\n $ export DATABASE_URL=postgresql://viewflow:viewflow@localhost/viewflow\n $ export DJANGO_SETTINGS_MODULE=demo.settings\n $ tox python manage.py migrate\n $ tox python manage.py runserver\n\n\nLicense\n=======\n\nDjango JSONField-Schema is an Open Source project licensed under the terms of\nthe AGPL license - `The GNU Affero General Public License v3.0\n`_ with the Additional Permissions\ndescribed in `LICENSE_EXCEPTION <./LICENSE_EXCEPTION>`_\n\nYou can more read about AGPL at `AGPL FAQ `_\nThis package license scheme follows to GCC Runtime library licensing. If you use\nLinux already, probably this package license, should not bring anything new to\nyour stack.\n\nLatest changelog\n================\n\n0.3.0 2019-11-01\n----------------\n\n* Support for date/time/datetime values\n* Support for help_text (description) and verbose_name (verboseName) field specs", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/viewflow/jsonfield-schema", "keywords": "workflow,django,bpm,automaton", "license": "", "maintainer": "", "maintainer_email": "", "name": "django-jsonfield-schema", "package_url": "https://pypi.org/project/django-jsonfield-schema/", "platform": "Any", "project_url": "https://pypi.org/project/django-jsonfield-schema/", "project_urls": { "Homepage": "http://github.com/viewflow/jsonfield-schema" }, "release_url": "https://pypi.org/project/django-jsonfield-schema/0.3.0/", "requires_dist": null, "requires_python": "", "summary": "Expose JSONField data as a virtual django model fields.", "version": "0.3.0", "yanked": false, "yanked_reason": null }, "last_serial": 6063428, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "e8c24aedb2afac761af4e69751fcf7da", "sha256": "f35220bb06a6ebd44514de6cf41dd4a95f7273c6fdbf2b72c43a192d68b8ea90" }, "downloads": -1, "filename": "django-jsonfield-schema-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e8c24aedb2afac761af4e69751fcf7da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17942, "upload_time": "2019-10-21T17:42:59", "upload_time_iso_8601": "2019-10-21T17:42:59.114787Z", "url": "https://files.pythonhosted.org/packages/ce/42/8a8bd8466f8b51b9648fba51efd10f33a60afc077e4078b2aa97a0049a96/django-jsonfield-schema-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "40ca5c3f840602e497769d37656da28c", "sha256": "933e286ab62fb8bb375f1a3dbb262ed4b9084b47e35f45fa0fc3dc146315c7b1" }, "downloads": -1, "filename": "django-jsonfield-schema-0.2.0.tar.gz", "has_sig": false, "md5_digest": "40ca5c3f840602e497769d37656da28c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18204, "upload_time": "2019-10-25T09:04:59", "upload_time_iso_8601": "2019-10-25T09:04:59.661777Z", "url": "https://files.pythonhosted.org/packages/2b/ff/bd6ff27fca9cadf037d23f0837a1e6d7316c3796efb51190430d44a49040/django-jsonfield-schema-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "090aa41835215524f4306edc26b3b1af", "sha256": "0cd5c220ac57771a4036dc8c1126d7cc8a502e7ae68c49b40c6482e51c3dc2a5" }, "downloads": -1, "filename": "django-jsonfield-schema-0.3.0.tar.gz", "has_sig": false, "md5_digest": "090aa41835215524f4306edc26b3b1af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18669, "upload_time": "2019-11-01T12:43:15", "upload_time_iso_8601": "2019-11-01T12:43:15.693570Z", "url": "https://files.pythonhosted.org/packages/89/89/d97d9f78c6c74a7138f599edd55977d44c96a8e0c09b84030d6b8cb0efa7/django-jsonfield-schema-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "090aa41835215524f4306edc26b3b1af", "sha256": "0cd5c220ac57771a4036dc8c1126d7cc8a502e7ae68c49b40c6482e51c3dc2a5" }, "downloads": -1, "filename": "django-jsonfield-schema-0.3.0.tar.gz", "has_sig": false, "md5_digest": "090aa41835215524f4306edc26b3b1af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18669, "upload_time": "2019-11-01T12:43:15", "upload_time_iso_8601": "2019-11-01T12:43:15.693570Z", "url": "https://files.pythonhosted.org/packages/89/89/d97d9f78c6c74a7138f599edd55977d44c96a8e0c09b84030d6b8cb0efa7/django-jsonfield-schema-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }