{ "info": { "author": "Kevin Mickey", "author_email": "kwmickey@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "# django-prettyjson\n\n[![PyPi Version](https://badge.fury.io/py/django-prettyjson.png)](https://badge.fury.io/py/django-prettyjson) [![Build Status](https://travis-ci.org/kevinmickey/django-prettyjson.svg?branch=master)](https://travis-ci.org/kevinmickey/django-prettyjson)\n\nEnables pretty JSON viewer in Django forms, admin, or templates. The viewer is adapted from [jQuery JSONView](https://github.com/yesmeck/jquery-jsonview). It is compatible with almost anything: JSON stored in a string, a jsonfield (using django.contrib.postgres or [django-jsonfield](https://github.com/bradjasper/django-jsonfield/)), or any python object that can be serialized to JSON (using [standardjson](https://github.com/audreyr/standardjson)).\n\n## Demo\n\nSee http://kevinmickey.github.io/django-prettyjson\n\n## Installation\n\nAt the command line:\n\n```sh\npip install django-prettyjson\n```\n\n## Configuration\n\nAdd `'prettyjson'` to `INSTALLED_APPS` in `settings.py`:\n\n```python\nINSTALLED_APPS = (\n ...,\n 'prettyjson',\n)\n```\n\n## Usage\n\nIn a form or admin of a model, enable a pretty JSON viewer for a particular field:\n\n```python\nfrom prettyjson import PrettyJSONWidget\n\nclass JsonForm(forms.ModelForm):\n class Meta:\n model = Test\n fields = '__all__'\n widgets = {\n 'myjsonfield': PrettyJSONWidget(),\n }\n\nclass JsonAdmin(admin.ModelAdmin):\n form = JsonForm\n```\n\nEnable pretty JSON viewer for every JSONField of a model:\n\n```python\nfrom django.contrib.postgres.fields import JSONField\n\nclass JsonAdmin(admin.ModelAdmin):\n formfield_overrides = {\n JSONField: {'widget': PrettyJSONWidget }\n }\n```\n\nIn templates, you can also enable a pretty JSON viewer. Use the `prettyjson` template tag with a string JSON or with objects (dicts, QuerySets, etc.) that can be serialized to a JSON. Note that the template tag must be loaded using `{% load prettyjson %}`. It also has CSS and JS that must be included using `{% prettyjson_setup %}`.\n\n```htmldjango\n{% extends \"base.html\" %}\n\n{% load prettyjson %}\n\n{% block header %}\n {{ block.super }}\n {% prettyjson_setup %}\n{% endblock %}\n\n{% block content %}\n {% prettyjson myqueryset %}\n {% prettyjson mydict %}\n {% prettyjson '{\"hey\": \"guy\",\"anumber\": 243,\"anobject\": {\"whoa\": \"nuts\",\"anarray\": [1,2,\"thr

ee\"], \"more\":\"stuff\"},\"awesome\": true,\"bogus\": false,\"meaning\": null, \"japanese\":\"\u660e\u65e5\u304c\u3042\u308b\u3002\", \"link\": \"http://jsonview.com\", \"notLink\": \"http://jsonview.com is great\"}' %}\n {% prettyjson '{}' %}\n{% endblock %}\n```\n\nThe setup includes jQuery, loaded as django.jQuery to avoid namespace conflict. If your page already includes jQuery, use `{% prettyjson_setup jquery=False %}` to avoid loading jQuery a second time.\n\n### Configure Rendering\n\nBy default the jsonwidget will render as a raw string with a button to click to change it to parsed json. For it to render as parsed json initially, you can pass an argument:\n\n```python\nclass JsonAdmin(admin.ModelAdmin):\n formfield_overrides = {\n JSONField: {'widget': PrettyJSONWidget(attrs={'initial': 'parsed'})}\n }\n```\n\nOr, in a template tag:\n\n```python\n{% prettyjson mydict initial='parsed' %}\n```\n\n## Running Tests\n\nIn development.\n\n```sh\nsource /bin/activate\n(myenv) $ pip install -r requirements-test.txt\n(myenv) $ python runtests.py\n```\n\n## Credits\n\nDependencies, parts of code, and/or sources of inspiration:\n\n* [jQuery JSONView](https://github.com/yesmeck/jquery-jsonview)\n* [standardjson](https://github.com/audreyr/standardjson)\n\nTools used in developing, testing, and/or rendering this package:\n\n* [Cookiecutter](https://github.com/audreyr/cookiecutter)\n* [cookiecutter-djangopackage](https://github.com/pydanny/cookiecutter-djangopackage)\n\n\n\n\nHistory\n-------\n\n0.1.0 (2016-05-28)\n++++++++++++++++++\n\n* First release.\n\n0.2.0 (2016-05-29)\n++++++++++++++++++\n\n* Switched to using standardjson for encoding objects\n* Added setup option for those with jquery already loaded\n\n0.2.1 (2016-07-01)\n++++++++++++++++++\n\n* Fixed manifest\n\n0.2.2 (2016-12-07)\n++++++++++++++++++\n\n* Added dependencies to setup.py\n\n0.3.0 (2017-05-23)\n++++++++++++++++++\n\n* Added \"initial\" option to show raw or parsed initial\n* Requires six\n\n0.3.1 (2018-04-01)\n++++++++++++++++++\n\n* Allows CSS control of parsed widget\n\n0.3.2 (2018-04-09)\n++++++++++++++++++\n\n* Fixes widget media order\n\n0.3.3 (2018-04-13)\n++++++++++++++++++\n\n* Fixes string passed as parameter\n\n0.4.0 (2018-04-30)\n++++++++++++++++++\n\n* Allows attrs in template tag\n* Fix JS for initial parsed with multiple widgets\n* Change parsed CSS height to max-height\n\n0.4.1 (2018-08-07)\n++++++++++++++++++\n\n* Fix widget for Django 2.1\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kevinmickey/django-prettyjson", "keywords": "django-prettyjson", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "django-prettyjson", "package_url": "https://pypi.org/project/django-prettyjson/", "platform": "", "project_url": "https://pypi.org/project/django-prettyjson/", "project_urls": { "Homepage": "https://github.com/kevinmickey/django-prettyjson" }, "release_url": "https://pypi.org/project/django-prettyjson/0.4.1/", "requires_dist": null, "requires_python": "", "summary": "Enables pretty JSON viewer in Django forms, admin, or templates", "version": "0.4.1" }, "last_serial": 4145250, "releases": { "0.1.0": [], "0.2.0": [ { "comment_text": "", "digests": { "md5": "c14a2278864a8c696fb6ac14c829a26f", "sha256": "c261bd5047756a7c383ce7fa4076d2e85b3662d6ce6c14b3668db04e03b8f1d8" }, "downloads": -1, "filename": "django_prettyjson-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c14a2278864a8c696fb6ac14c829a26f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10346, "upload_time": "2016-05-29T23:18:21", "url": "https://files.pythonhosted.org/packages/f5/01/e45e1585ad439df9f0371e9c242a82f0d59ca3e102510af3eed710fcac44/django_prettyjson-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5244f4514ff53b8f6f87cfb9d63f26dc", "sha256": "77cd033ae8abf3eca2109cfd94fd546440411e39ce556c87ecc5414724f0700f" }, "downloads": -1, "filename": "django-prettyjson-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5244f4514ff53b8f6f87cfb9d63f26dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9220, "upload_time": "2016-05-29T23:18:16", "url": "https://files.pythonhosted.org/packages/b4/f8/c7d7341f2ac5d9143b58fc8a1be705e713e9ca9c5e63752556c784168625/django-prettyjson-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "8c3a2ef9b0087721c9426d580aaad2a3", "sha256": "866fa65b4780a833fd3efff5b3d662ecb8779791204cd61f8c587bc9d65496a3" }, "downloads": -1, "filename": "django_prettyjson-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8c3a2ef9b0087721c9426d580aaad2a3", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10481, "upload_time": "2016-07-01T13:42:49", "url": "https://files.pythonhosted.org/packages/82/e3/4b9dea02866f5cfab3ac3d614f319ae63823799c60610a88a9ef0ea635d0/django_prettyjson-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69d15e5c9f679231670504997fc0b8b7", "sha256": "51a6b1db3b8195e248de0ddfcb86ce0da6dabcc4c52c8e6aa25722f1dedd7272" }, "downloads": -1, "filename": "django-prettyjson-0.2.1.tar.gz", "has_sig": false, "md5_digest": "69d15e5c9f679231670504997fc0b8b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9666, "upload_time": "2016-07-01T13:42:44", "url": "https://files.pythonhosted.org/packages/99/fc/c25e2ae4cffbfa049340a97f5740fb7a21d7de904ab591771a3fb36f6bbd/django-prettyjson-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "ee5209b615ba49b3929bf4f1d74817d6", "sha256": "70d1a458e49d0ce76d10b48e1641edc05b00534452f3cd2064535607e9b4a4a8" }, "downloads": -1, "filename": "django_prettyjson-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ee5209b615ba49b3929bf4f1d74817d6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10599, "upload_time": "2016-12-07T13:04:57", "url": "https://files.pythonhosted.org/packages/28/6a/1d590e1adb3b0c01c2c49868a36808674f84fabc9f9d94ff6f211ec63f50/django_prettyjson-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70f6150e2707b11c96b5015b3e3f7d89", "sha256": "cba99f1575bece37dedccf6982f09bfde185ab5b0e513a2149264bf9a1d9e494" }, "downloads": -1, "filename": "django-prettyjson-0.2.2.tar.gz", "has_sig": false, "md5_digest": "70f6150e2707b11c96b5015b3e3f7d89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9858, "upload_time": "2016-12-07T13:04:54", "url": "https://files.pythonhosted.org/packages/31/88/232abed129ecdfe5b1978f92d40e2fed9ccc2fac0140c9f81e3e71f615e9/django-prettyjson-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "262671d153b64fefd0587339d0732fb4", "sha256": "2ec394d81510e29e14809134996d04585033ec83340efce22bd3b8489e53ec49" }, "downloads": -1, "filename": "django_prettyjson-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "262671d153b64fefd0587339d0732fb4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11111, "upload_time": "2017-05-24T00:09:48", "url": "https://files.pythonhosted.org/packages/3f/c2/81f5a830ab343a144f9d79fcbc4ca0bf528caefb23c1889f66e5917706b0/django_prettyjson-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c9fce9e67e90edd1599a935ef9fcfd2b", "sha256": "1e325ee44fb054d981fba37dd0261d07ce9d36819d6092676e63c8994f16c7e4" }, "downloads": -1, "filename": "django-prettyjson-0.3.0.tar.gz", "has_sig": false, "md5_digest": "c9fce9e67e90edd1599a935ef9fcfd2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10239, "upload_time": "2017-05-24T00:09:46", "url": "https://files.pythonhosted.org/packages/80/28/a9746e70fad5f517defc7893c0a500818bbfb42d7c788d4341f2cc80085d/django-prettyjson-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "91f36161e0a5cd64848d3c856c57ff4a", "sha256": "49f9af80aa4250c17e5181afc1e34bf3600753fac57f7f0da8639ba760022075" }, "downloads": -1, "filename": "django_prettyjson-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "91f36161e0a5cd64848d3c856c57ff4a", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11137, "upload_time": "2018-04-01T05:06:57", "url": "https://files.pythonhosted.org/packages/57/37/a828983041cb8b4e931b77c320beea45708a62e22c5414398c9c2f21301d/django_prettyjson-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f0d92c49205fd432def956ed1deebb1", "sha256": "c9496896111a324e6bb617807804d7c9a1fdef720820d133af5ced4b848e3b54" }, "downloads": -1, "filename": "django-prettyjson-0.3.1.tar.gz", "has_sig": false, "md5_digest": "3f0d92c49205fd432def956ed1deebb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10124, "upload_time": "2018-04-01T05:06:50", "url": "https://files.pythonhosted.org/packages/25/3a/16cc22023c297e41a461a2ced77a160d2b46dd01b1b1a0414335dc32fcf9/django-prettyjson-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "6dc4ac5ba6dcd765e716fcd76f311de1", "sha256": "c76aedc8a66b661663fefccd6d0ec03cc01c7af19b107f254d6de8eae9ba7f2a" }, "downloads": -1, "filename": "django_prettyjson-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6dc4ac5ba6dcd765e716fcd76f311de1", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11090, "upload_time": "2018-04-09T08:57:12", "url": "https://files.pythonhosted.org/packages/c2/1a/38e85f0e2312954ca18c46421f3d5bfd2dba11cf825cc3c267f128e48442/django_prettyjson-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "39a2d02e00da9a9e9b7e012678514b95", "sha256": "439e00a3514cd25b3c76b1a4cb096c61f990fd4ede8887fc96993008f483d7e9" }, "downloads": -1, "filename": "django-prettyjson-0.3.2.tar.gz", "has_sig": false, "md5_digest": "39a2d02e00da9a9e9b7e012678514b95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10125, "upload_time": "2018-04-09T08:57:04", "url": "https://files.pythonhosted.org/packages/dd/a5/d4da8f34dfd5117d2253bd67e8e2f7e44ddf84d9b7e3df00956bb15c412a/django-prettyjson-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "600c1b5ecc1d36a9fdbfe3c0fed3c5e0", "sha256": "071ec1bcebe494795c333813f331bbc07b0bd31180274e6f94f37f1d1b329809" }, "downloads": -1, "filename": "django_prettyjson-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "600c1b5ecc1d36a9fdbfe3c0fed3c5e0", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11135, "upload_time": "2018-04-13T08:27:14", "url": "https://files.pythonhosted.org/packages/57/e5/df9942fecc6fa5ee9715199d853be7fd90effbaf750b748cfd45b45116e1/django_prettyjson-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a22cf88fd325792c332d184c3ab62b98", "sha256": "022b65d37412ecedd850562e39e9ace4c9988835f058612cfb9990163e43b8e1" }, "downloads": -1, "filename": "django-prettyjson-0.3.3.tar.gz", "has_sig": false, "md5_digest": "a22cf88fd325792c332d184c3ab62b98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10156, "upload_time": "2018-04-13T08:27:12", "url": "https://files.pythonhosted.org/packages/9e/51/4ba420162f7ebc695469afefb90119730c76068c0c685ba2fc888e5ec595/django-prettyjson-0.3.3.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "15a6cb33f78e1633b034452f34361cc8", "sha256": "d471f7b6cb420e05ce874f230265e7b313bd0df284e489e17a434a5ab7b5f735" }, "downloads": -1, "filename": "django_prettyjson-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "15a6cb33f78e1633b034452f34361cc8", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11273, "upload_time": "2018-04-30T16:15:22", "url": "https://files.pythonhosted.org/packages/68/49/1362d8af0e821bf89ba842370c3685eddfc480373b2d3c1d66ef7d11af04/django_prettyjson-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9e86a8e3c5d6efaa7ade0b8bd8368c17", "sha256": "1584f746016cde062d4b42abeb206c9f01e4ad98583873c5952851646f21a2ef" }, "downloads": -1, "filename": "django-prettyjson-0.4.0.tar.gz", "has_sig": false, "md5_digest": "9e86a8e3c5d6efaa7ade0b8bd8368c17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10266, "upload_time": "2018-04-30T16:15:19", "url": "https://files.pythonhosted.org/packages/f8/a8/14d1f1de037c9866977b74769969049945dfef1385973a3da376e3df535a/django-prettyjson-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "4901c5a24f2a97648115ef907b20c3d6", "sha256": "f9f4d73899947f17a67f61b57216612373195937fa936ba9335549fe878b3355" }, "downloads": -1, "filename": "django_prettyjson-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4901c5a24f2a97648115ef907b20c3d6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8521, "upload_time": "2018-08-07T17:45:22", "url": "https://files.pythonhosted.org/packages/7c/d3/3991e2fda0f0798d9082ba87f2cd9a2c5769fafed2e91856b97909cb00e6/django_prettyjson-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de945e9fb4a8229d34928d993cc2ca1e", "sha256": "b758a5f3c073db93e17485b4eb9cb19e9838f6e5d6cb91096d795e015e28d3bd" }, "downloads": -1, "filename": "django-prettyjson-0.4.1.tar.gz", "has_sig": false, "md5_digest": "de945e9fb4a8229d34928d993cc2ca1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10327, "upload_time": "2018-08-07T17:45:17", "url": "https://files.pythonhosted.org/packages/b0/92/fa6f4de06e85ad7b04cb26af98bac4b2d40beca0eea819e1c84f5fe145e9/django-prettyjson-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4901c5a24f2a97648115ef907b20c3d6", "sha256": "f9f4d73899947f17a67f61b57216612373195937fa936ba9335549fe878b3355" }, "downloads": -1, "filename": "django_prettyjson-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4901c5a24f2a97648115ef907b20c3d6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8521, "upload_time": "2018-08-07T17:45:22", "url": "https://files.pythonhosted.org/packages/7c/d3/3991e2fda0f0798d9082ba87f2cd9a2c5769fafed2e91856b97909cb00e6/django_prettyjson-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de945e9fb4a8229d34928d993cc2ca1e", "sha256": "b758a5f3c073db93e17485b4eb9cb19e9838f6e5d6cb91096d795e015e28d3bd" }, "downloads": -1, "filename": "django-prettyjson-0.4.1.tar.gz", "has_sig": false, "md5_digest": "de945e9fb4a8229d34928d993cc2ca1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10327, "upload_time": "2018-08-07T17:45:17", "url": "https://files.pythonhosted.org/packages/b0/92/fa6f4de06e85ad7b04cb26af98bac4b2d40beca0eea819e1c84f5fe145e9/django-prettyjson-0.4.1.tar.gz" } ] }