{ "info": { "author": "Jakub Semik", "author_email": "kuba.semik@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Framework :: Django :: 2.2", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Django better admin ArrayField\n\n[![image](https://badge.fury.io/py/django-better-admin-arrayfield.svg)](https://badge.fury.io/py/django-better-admin-arrayfield)\n\n[![image](https://travis-ci.org/gradam/django-better-admin-arrayfield.svg?branch=master)](https://travis-ci.org/gradam/django-better-admin-arrayfield)\n\n[![image](https://codecov.io/gh/gradam/django-better-admin-arrayfield/branch/master/graph/badge.svg)](https://codecov.io/gh/gradam/django-better-admin-arrayfield)\n\nBetter ArrayField widget for admin\n\nSupported Python versions: 3.5, 3.6, 3.7\nSupported Django versions: 1.11, 2.0, 2.1, 2.2\n\nIt changes comma separated widget to list based in admin panel.\n\nBefore:\n![Alt text](https://raw.githubusercontent.com/gradam/django-better-admin-arrayfield/master/readme_images/before.jpg \"Before\")\n\nAfter:\n![Alt text](https://raw.githubusercontent.com/gradam/django-better-admin-arrayfield/master/readme_images/after.png \"After\")\n\n## Quickstart\n\nInstall Django better admin ArrayField:\n\n pip install django-better-admin-arrayfield\n\nAdd it to your \\`INSTALLED\\_APPS\\`:\n\n```python\nINSTALLED_APPS = (\n ...\n 'django_better_admin_arrayfield.apps.DjangoBetterAdminArrayfieldConfig',\n ...\n)\n```\n\n\n## Usage\n\n`django_better_admin_arrayfield.models.fields.ArrayField` is a drop-in replacement for standard Django `ArrayField`.\n\nImport it like below and use it in your model class definition.\n```python\nfrom django_better_admin_arrayfield.models.fields import ArrayField\n```\n\nImport DynamicArrayMixin like below\n```python\nfrom django_better_admin_arrayfield.admin.mixins import DynamicArrayMixin\n```\n\nIn your admin class add `DynamicArrayMixin`:\n ...\n```python\nclass MyModelAdmin(admin.ModelAdmin, DynamicArrayMixin):\n```\n\nThat's it.\n\n## Running Tests\n\nDoes the code actually work?\n\n source /bin/activate\n (myenv) $ pip install tox\n (myenv) $ tox\n\n## Pre-commit hooks\n\nInstall pre-commit black hook\n\n source /bin/activate\n (myenv) $ pip install -r requirements_dev.txt\n (myenv) $ pre-commit install\n\n## Credits\n\nInspired by: https://stackoverflow.com/a/49370480/4638248\n\nTools used in rendering this\n package:\n\n - [Cookiecutter](https://github.com/audreyr/cookiecutter)\n - [cookiecutter-djangopackage](https://github.com/pydanny/cookiecutter-djangopackage)\n\n\n# History\n\n## 1.0.4 (2019-09-02)\n\n - Can add item after removing everything from the list\n\n## 1.0.3 (2019-09-02)\n\n - Can add item after removing everything from the list\n - Do not call static at startup time\n\n## 1.0.2 (2019-04-03)\n\n - If field is required empty list raises ValidationError on clean.\n\n## 1.0.1 (2019-02-23)\n\n - Empty list is no longer recognized as changed.\n\n\n## 1.0.0 (2019-02-21)\n\n - First release on PyPI.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/gradam/django-better-admin-arrayfield", "keywords": "django-better-admin-arrayfield", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-better-admin-arrayfield", "package_url": "https://pypi.org/project/django-better-admin-arrayfield/", "platform": "", "project_url": "https://pypi.org/project/django-better-admin-arrayfield/", "project_urls": { "Homepage": "https://github.com/gradam/django-better-admin-arrayfield" }, "release_url": "https://pypi.org/project/django-better-admin-arrayfield/1.0.4/", "requires_dist": null, "requires_python": "", "summary": "Better ArrayField widget for admin", "version": "1.0.4" }, "last_serial": 5903599, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "de83ecd93c02567d054588e81d86a242", "sha256": "8c1e3a44c36f97889472e773fc77ff2acc869fdb05f6033729337c91eba138fd" }, "downloads": -1, "filename": "django_better_admin_arrayfield-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "de83ecd93c02567d054588e81d86a242", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9324, "upload_time": "2019-02-21T08:51:58", "url": "https://files.pythonhosted.org/packages/c2/52/2306e16991c7e3bcf04afc59e73d76b034d454599fe2f44e8a428c07d8b4/django_better_admin_arrayfield-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f00732a45e33417458ba43f706751e5", "sha256": "c49bee8d21fcfc94970ed842218fdb7ecda40bfcf11e793ae1f11c37269fc726" }, "downloads": -1, "filename": "django-better-admin-arrayfield-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8f00732a45e33417458ba43f706751e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8845, "upload_time": "2019-02-21T08:52:02", "url": "https://files.pythonhosted.org/packages/20/50/1c4e83e14f860742034935fa8b9661a4df22a2f67139dc553afb051c08b5/django-better-admin-arrayfield-0.1.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "b446eb4a7d24561c7effb110b85eb1ca", "sha256": "2b096efeb68e43dda924654cb46c095c17af5773e9e113a6ffdde5aea40c5206" }, "downloads": -1, "filename": "django_better_admin_arrayfield-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b446eb4a7d24561c7effb110b85eb1ca", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9355, "upload_time": "2019-02-21T08:52:01", "url": "https://files.pythonhosted.org/packages/e5/21/bf567bfcad38ce1321703e4bc3755816949ce3ad45a14ab97cd49eae0fdc/django_better_admin_arrayfield-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d959c39ff5be80e83c89fb5fdb50a6c6", "sha256": "b040a42078a91c9677378248ef0aac53cf206dccdbe28b4facc77c2096c65504" }, "downloads": -1, "filename": "django-better-admin-arrayfield-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d959c39ff5be80e83c89fb5fdb50a6c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8907, "upload_time": "2019-02-21T08:52:04", "url": "https://files.pythonhosted.org/packages/be/a0/4e3a476b7621e3332c6a57aac70835f6878565df73e9689705e94c6b02ea/django-better-admin-arrayfield-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "e7991aa962e37b14ffb2e862f57b1397", "sha256": "234980b2f412e95f498fa381cf337a5fb36d97d5a5c9c2ae86371ae5b4d4a4e3" }, "downloads": -1, "filename": "django_better_admin_arrayfield-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e7991aa962e37b14ffb2e862f57b1397", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9456, "upload_time": "2019-02-23T07:53:01", "url": "https://files.pythonhosted.org/packages/9f/27/8ff91cf2fc6507bb51c07a6eec70d83ae38cf8be70681d5552babb3e5fdc/django_better_admin_arrayfield-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "077617bac44ff9fc56ae7c7bf5459d9b", "sha256": "ee415915867ff4a63914c958bdb7e9344a7c3d1927f046678563f5420d0bf8ea" }, "downloads": -1, "filename": "django-better-admin-arrayfield-1.0.1.tar.gz", "has_sig": false, "md5_digest": "077617bac44ff9fc56ae7c7bf5459d9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9069, "upload_time": "2019-02-23T07:53:04", "url": "https://files.pythonhosted.org/packages/7c/4e/a72b1ae5106d843f6d66a54ad5dbab363597112a63698b8242738597ca12/django-better-admin-arrayfield-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "a01d1fc60f503535b6a42cb197a6a7b7", "sha256": "55b4c8bed75e5c5d3959761c67c45e9b8e3f3b48d08a455a94b173d472b4bfa5" }, "downloads": -1, "filename": "django_better_admin_arrayfield-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a01d1fc60f503535b6a42cb197a6a7b7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9514, "upload_time": "2019-04-03T09:03:30", "url": "https://files.pythonhosted.org/packages/84/9c/5d69272e784369de960467b650b7b74bf33e0d3c80ce8d8eae50f0e0c199/django_better_admin_arrayfield-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "31d5fb11f24d349bac24f0df84841e88", "sha256": "803faa908e186dd9a331d2a83876fcb7fce7743f5f32de28c23d1b5052fac7c9" }, "downloads": -1, "filename": "django-better-admin-arrayfield-1.0.2.tar.gz", "has_sig": false, "md5_digest": "31d5fb11f24d349bac24f0df84841e88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9202, "upload_time": "2019-04-03T09:03:34", "url": "https://files.pythonhosted.org/packages/bc/81/f620fe90c21bda98d10d1a9fb6b105ae92efc54518185442ef4f17235825/django-better-admin-arrayfield-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "099de366fbb857d88af80f8ebd187e99", "sha256": "f10bd99cd0b4682a88e1b6c5ea9342fa69eb79450a064679f6620588ecb6a7fe" }, "downloads": -1, "filename": "django-better-admin-arrayfield-1.0.3.tar.gz", "has_sig": false, "md5_digest": "099de366fbb857d88af80f8ebd187e99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9420, "upload_time": "2019-09-02T13:31:30", "url": "https://files.pythonhosted.org/packages/10/28/3ac9a1615a01e82e4fe394dba812661a61f115d672c8e5d0bbd5514696a7/django-better-admin-arrayfield-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "c2dc87f3a49474e8d831980a44dd8ea5", "sha256": "2ec4d3ff71679124bf95339cfd005088a72a4f72dcfe42710a93106708041430" }, "downloads": -1, "filename": "django_better_admin_arrayfield-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c2dc87f3a49474e8d831980a44dd8ea5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9941, "upload_time": "2019-09-29T19:38:11", "url": "https://files.pythonhosted.org/packages/70/c6/cbee8cf46ef017287d42edffc1d7c52cb6dc7f3b27a7ad8020aec4f862a8/django_better_admin_arrayfield-1.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9568a30abd7edd4f051c480542aed5c3", "sha256": "bd9d4d8c4f2d9ddcd5b43e1dc12c854fdf5547ab1c4285910cfa4e1950ae2ebe" }, "downloads": -1, "filename": "django-better-admin-arrayfield-1.0.4.tar.gz", "has_sig": false, "md5_digest": "9568a30abd7edd4f051c480542aed5c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9718, "upload_time": "2019-09-29T19:38:14", "url": "https://files.pythonhosted.org/packages/08/c0/da59b6533fdb5ebb3c3996a270278dd1b276f398062066cd387130d25f6a/django-better-admin-arrayfield-1.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c2dc87f3a49474e8d831980a44dd8ea5", "sha256": "2ec4d3ff71679124bf95339cfd005088a72a4f72dcfe42710a93106708041430" }, "downloads": -1, "filename": "django_better_admin_arrayfield-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c2dc87f3a49474e8d831980a44dd8ea5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9941, "upload_time": "2019-09-29T19:38:11", "url": "https://files.pythonhosted.org/packages/70/c6/cbee8cf46ef017287d42edffc1d7c52cb6dc7f3b27a7ad8020aec4f862a8/django_better_admin_arrayfield-1.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9568a30abd7edd4f051c480542aed5c3", "sha256": "bd9d4d8c4f2d9ddcd5b43e1dc12c854fdf5547ab1c4285910cfa4e1950ae2ebe" }, "downloads": -1, "filename": "django-better-admin-arrayfield-1.0.4.tar.gz", "has_sig": false, "md5_digest": "9568a30abd7edd4f051c480542aed5c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9718, "upload_time": "2019-09-29T19:38:14", "url": "https://files.pythonhosted.org/packages/08/c0/da59b6533fdb5ebb3c3996a270278dd1b276f398062066cd387130d25f6a/django-better-admin-arrayfield-1.0.4.tar.gz" } ] }