{ "info": { "author": "Demir\u00f6ren Teknoloji Django Team", "author_email": "account@demirorenteknoloji.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 2.2", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "![Python](https://img.shields.io/badge/python-3.5-green.svg)\n![Python](https://img.shields.io/badge/python-3.6-green.svg)\n![Python](https://img.shields.io/badge/python-3.7-green.svg)\n![Python](https://img.shields.io/badge/python-3.9-green.svg)\n![Django](https://img.shields.io/badge/django-3.+-green.svg)\n![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)\n[![PyPI version](https://badge.fury.io/py/django-admin-autocomplete-list-filter.svg)](https://badge.fury.io/py/django-admin-autocomplete-list-filter)\n\n# django-admin-autocomplete-list-filter\n\nAjax autocomplete list filter helper for Django admin. Uses Django\u2019s built-in\nautocomplete widget! No extra package or install required!\n\n![After](screenshots/demo.gif?v=2 \"Widget in action...\")\n\n## Update\n\nDropped support for Django 2 family. Works with **Django 3** or higher!. `master`\nbranch is renamed to `main`... You can fix your existing clones via;\n\n```bash\ngit branch -m master main\ngit fetch origin\ngit branch -u origin/main main\ngit remote set-head origin -a\n```\n\n## Installation and Usage\n\n```bash\n$ pip install django-admin-autocomplete-list-filter\n```\n\nAdd `djaa_list_filter` to `INSTALLED_APPS` in your `settings.py`:\n\n```python\nINSTALLED_APPS = [\n 'django.contrib.admin',\n 'django.contrib.auth',\n 'django.contrib.contenttypes',\n 'django.contrib.sessions',\n 'django.contrib.messages',\n 'django.contrib.staticfiles',\n 'djaa_list_filter', \n]\n```\n\nNow, let\u2019s look at this example model:\n\n```python\n# models.py\n\nfrom django.conf import settings\nfrom django.db import models\n\n\nclass Post(models.Model):\n category = models.ForeignKey(to='Category', on_delete=models.CASCADE, related_name='posts')\n author = models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='posts')\n title = models.CharField(max_length=255)\n body = models.TextField()\n tags = models.ManyToManyField(to='Tag', blank=True)\n\n def __str__(self):\n return self.title\n\n\nclass Category(models.Model):\n title = models.CharField(max_length=255)\n\n def __str__(self):\n return self.title\n\n\nclass Tag(models.Model):\n name = models.CharField(max_length=255)\n\n def __str__(self):\n return self.name\n\n```\n\nWe have 2 **ForeignKey** fields and one **ManyToManyField** to enable\nautocomplete list filter feature on admin. All you need is to inherit from\n`AjaxAutocompleteListFilterModelAdmin` which inherits from Django\u2019s\n`admin.ModelAdmin`.\n\nNow we have an extra ModelAdmin method: `autocomplete_list_filter`. Uses \nDjango Admin\u2019s `search_fields` logic. You need to enable `search_fields`\nin the related ModelAdmin. To enable completion on `Category` relation,\n`CategoryAdmin` should have `search_fields` that\u2019s it!\n\n```python\nfrom django.contrib import admin\n\nfrom djaa_list_filter.admin import (\n AjaxAutocompleteListFilterModelAdmin,\n)\n\nfrom .models import Category, Post, Tag\n\n\n@admin.register(Post)\nclass PostAdmin(AjaxAutocompleteListFilterModelAdmin):\n list_display = ('__str__', 'author', 'show_tags')\n autocomplete_list_filter = ('category', 'author', 'tags')\n\n def show_tags(self, obj):\n return ' , '.join(obj.tags.values_list('name', flat=True))\n\n\n@admin.register(Category)\nclass CategoryAdmin(admin.ModelAdmin):\n search_fields = ['title']\n ordering = ['title']\n\n\n@admin.register(Tag)\nclass TagAdmin(admin.ModelAdmin):\n search_fields = ['name']\n ordering = ['name']\n\n```\n\n## Development\n\nYou are very welcome to contribute, fix bugs or improve this project. We\nhope to help people who needs this feature. We made this package for\nour company project. Good appetite for all the Django developers out there!\n\n## License\n\nThis project is licensed under MIT\n\n---\n\n## Contributor(s)\n\n* [U\u011fur \"vigo\" \u00d6zy\u0131lmazel](https://github.com/vigo) - Author, Maintainer\n* [Can Ad\u0131yaman](https://github.com/canadiyaman) - Author, Maintainer\n* [Erdi Mollah\u00fcseyino\u011flu](https://github.com/erdimollahuseyin) - Author, Maintainer\n* [Guglielmo Celata](https://github.com/guglielmo) - Contributor\n* [Joseph Bane](https://github.com/havocbane) - Contributor\n* [Ryohei Endo](https://github.com/rendoh) - Contributor\n* [Peter Farrell](https://github.com/maestrofjp) - Contributor\n* [M\u00e1rton Salomv\u00e1ry](https://github.com/salomvary) - Contributor\n\n---\n\n## Contribute\n\nAll PR\u2019s are welcome!\n\n1. `fork` (https://github.com/demiroren-teknoloji/django-admin-autocomplete-list-filter/fork)\n1. Create your `branch` (`git checkout -b my-features`)\n1. `commit` yours (`git commit -am 'added killer options'`)\n1. `push` your `branch` (`git push origin my-features`)\n1. Than create a new **Pull Request**!\n\n---\n\n## TODO\n\n- Add unit tests\n- Improve JavaScript code :)\n\n## Change Log\n\n**2021-08-17**\n\n- [Fix Django 3 compatibility changes](https://github.com/demiroren-teknoloji/django-admin-autocomplete-list-filter/pull/6)\n- [Allow for more than one autocomplete field](https://github.com/demiroren-teknoloji/django-admin-autocomplete-list-filter/pull/5)\n- [staticfiles fix](https://github.com/demiroren-teknoloji/django-admin-autocomplete-list-filter/pull/3)\n- `master` branch is renamed to `main`\n\n**2019-10-25**\n\n- Remove f-string for older Python versions, will change this on 1.0.0 version\n\n**2019-10-19**\n\n- Bump version: 0.1.2\n- Add Python 3.5 supports, thanks to [Peter Farrel](https://github.com/maestrofjp)\n- Add animated gif :)\n- Add future warning for f-strings\n\n**2019-10-11**\n\n- Add ManyToManyField support\n- Initial release\n\n**2019-10-07**\n\n- Init repo...\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/demiroren-teknoloji/django-admin-autocomplete-list-filter", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-admin-autocomplete-list-filter", "package_url": "https://pypi.org/project/django-admin-autocomplete-list-filter/", "platform": "", "project_url": "https://pypi.org/project/django-admin-autocomplete-list-filter/", "project_urls": { "Homepage": "https://github.com/demiroren-teknoloji/django-admin-autocomplete-list-filter" }, "release_url": "https://pypi.org/project/django-admin-autocomplete-list-filter/1.0.1/", "requires_dist": null, "requires_python": ">=3.0", "summary": "Ajax autocomplete list filter for Django admin", "version": "1.0.1", "yanked": false, "yanked_reason": null }, "last_serial": 11358634, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "5338e329083ac0f3a565b2852a425301", "sha256": "55746d202a5015eff03db15d7717b64d4dc0868b345cbe3a4890879339c69407" }, "downloads": -1, "filename": "django_admin_autocomplete_list_filter-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5338e329083ac0f3a565b2852a425301", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 7588, "upload_time": "2019-10-11T13:29:36", "upload_time_iso_8601": "2019-10-11T13:29:36.347034Z", "url": "https://files.pythonhosted.org/packages/7f/5a/efb90c6d359e02f010baca90c2d68071c23c90b2d54d59643eb30516ccf6/django_admin_autocomplete_list_filter-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c9e7906f0d16d886a7bab0dd93103174", "sha256": "8416ae0787c6b75f498c6a3f306c0e2c9a0b07ca9b349d7efc3fa4a697e5c265" }, "downloads": -1, "filename": "django-admin-autocomplete-list-filter-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c9e7906f0d16d886a7bab0dd93103174", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 6532, "upload_time": "2019-10-11T13:29:39", "upload_time_iso_8601": "2019-10-11T13:29:39.381341Z", "url": "https://files.pythonhosted.org/packages/f7/8d/fa5a2e970d07488222e3c2032d4695dc4dd490198ae384014b8712732d76/django-admin-autocomplete-list-filter-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "62f1cce1ddf6fdf4e5d8291267097fc0", "sha256": "7bd0e035ca46a4269801f689be2ecf83f50427964a324683050914e8e44732c8" }, "downloads": -1, "filename": "django_admin_autocomplete_list_filter-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "62f1cce1ddf6fdf4e5d8291267097fc0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 7720, "upload_time": "2019-10-19T17:42:05", "upload_time_iso_8601": "2019-10-19T17:42:05.035929Z", "url": "https://files.pythonhosted.org/packages/e1/0a/e7453ec42aebf52030c8895778859f519c5dfb5ba2c26f3bcb0d3a6856c7/django_admin_autocomplete_list_filter-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1deda217173d4b4cf8446b18da3672d8", "sha256": "f0f6be23496f58fd8e3050472ffab0573479de6fb4cc46e413b1772077129646" }, "downloads": -1, "filename": "django-admin-autocomplete-list-filter-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1deda217173d4b4cf8446b18da3672d8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 6675, "upload_time": "2019-10-19T17:42:06", "upload_time_iso_8601": "2019-10-19T17:42:06.802169Z", "url": "https://files.pythonhosted.org/packages/41/98/893ebae2ab455c560d34810f5776688c585158f7a16e352aa566ff859317/django-admin-autocomplete-list-filter-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "14d8f7efcc84de73f211ae70a69004de", "sha256": "fde44df48bb8e35c4647fe227183950f38c54ce7e95e32630e56dd4e6d5f84eb" }, "downloads": -1, "filename": "django_admin_autocomplete_list_filter-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "14d8f7efcc84de73f211ae70a69004de", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 7803, "upload_time": "2019-10-19T17:58:56", "upload_time_iso_8601": "2019-10-19T17:58:56.377859Z", "url": "https://files.pythonhosted.org/packages/a8/9c/61d290c8b0bbff7e9cfcb82956aba12384d60f07fcee2e988667c97b528d/django_admin_autocomplete_list_filter-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f4e736517780ff0e4bb665f650f8f94f", "sha256": "53ec80f685e9ea0a7f88b141acf02750fb57ec769820b72b06de8f939e54d12e" }, "downloads": -1, "filename": "django-admin-autocomplete-list-filter-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f4e736517780ff0e4bb665f650f8f94f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 6785, "upload_time": "2019-10-19T17:58:58", "upload_time_iso_8601": "2019-10-19T17:58:58.136208Z", "url": "https://files.pythonhosted.org/packages/aa/be/c8a548b6fc3c29f2c56cdc2e210e5f6e94ab6e4daba3bea38af21991e154/django-admin-autocomplete-list-filter-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "e04207fcfbaecb7685fd86963d6ab33f", "sha256": "b3f4ddbaa6b9e9862ae6c44029db3548a25d73f92bd619c5246e2c62ee6ac6c6" }, "downloads": -1, "filename": "django_admin_autocomplete_list_filter-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "e04207fcfbaecb7685fd86963d6ab33f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 7820, "upload_time": "2019-10-25T07:59:13", "upload_time_iso_8601": "2019-10-25T07:59:13.212985Z", "url": "https://files.pythonhosted.org/packages/ff/2a/83b08ef2b30c5031db78945de88366e3ec9bf06b03a6f71d098bd296da4a/django_admin_autocomplete_list_filter-0.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "afec39a3dcce780457daa94212d87471", "sha256": "a02f297b13900ee5758ba79d861129b1f18d8bc5c768df9ef371eafdaf366e4a" }, "downloads": -1, "filename": "django-admin-autocomplete-list-filter-0.1.3.tar.gz", "has_sig": false, "md5_digest": "afec39a3dcce780457daa94212d87471", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 6831, "upload_time": "2019-10-25T07:59:14", "upload_time_iso_8601": "2019-10-25T07:59:14.432106Z", "url": "https://files.pythonhosted.org/packages/bd/34/68ca547836bcb82ed744ceb0ddd8bb8072937c5a0bde680aa2d20fca2947/django-admin-autocomplete-list-filter-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "6b61ed41413a85b6fc44cfe38e01c900", "sha256": "7be11c014bac6d4a18e76ff2150df1510ef6bc4fc52f53fe9b8cc435c287edbc" }, "downloads": -1, "filename": "django_admin_autocomplete_list_filter-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6b61ed41413a85b6fc44cfe38e01c900", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 8021, "upload_time": "2021-08-17T07:26:09", "upload_time_iso_8601": "2021-08-17T07:26:09.078638Z", "url": "https://files.pythonhosted.org/packages/fc/9e/d1226321fe2db2021c6bde4f9b92423bbcabceea87b6c249dd816ba48780/django_admin_autocomplete_list_filter-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "df48aaa60c698bd2b97584cf18bcb64f", "sha256": "f51d2d61b400d2e99a45bf9dfdc245a31f1a8d510262f24ff2af06932792a1c6" }, "downloads": -1, "filename": "django-admin-autocomplete-list-filter-1.0.0.tar.gz", "has_sig": false, "md5_digest": "df48aaa60c698bd2b97584cf18bcb64f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 9219, "upload_time": "2021-08-17T07:26:11", "upload_time_iso_8601": "2021-08-17T07:26:11.259615Z", "url": "https://files.pythonhosted.org/packages/2e/52/7bb325baa4955a6f98966624df881a0925c574dc64b253f3f73365ee277a/django-admin-autocomplete-list-filter-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "9e98af7aaee01641ab222e6d089b3e7a", "sha256": "2252f75eb6c72f2bc2c98da84986584d8a202b8734d1e53c59cb5b36f52cb0f5" }, "downloads": -1, "filename": "django_admin_autocomplete_list_filter-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9e98af7aaee01641ab222e6d089b3e7a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 8175, "upload_time": "2021-09-03T14:45:04", "upload_time_iso_8601": "2021-09-03T14:45:04.449378Z", "url": "https://files.pythonhosted.org/packages/0a/6f/8411ebc7c8452d12d23fa41194ab5f5326ec31221797e7679dee42a8831c/django_admin_autocomplete_list_filter-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c22c4e8d7addf1dabd9373147c6234f8", "sha256": "135d840cf337ad0f8823fbdb128cefaba65ae0867a87422b9f495f3fa50b204c" }, "downloads": -1, "filename": "django-admin-autocomplete-list-filter-1.0.1.tar.gz", "has_sig": false, "md5_digest": "c22c4e8d7addf1dabd9373147c6234f8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 9484, "upload_time": "2021-09-03T14:45:05", "upload_time_iso_8601": "2021-09-03T14:45:05.962386Z", "url": "https://files.pythonhosted.org/packages/6d/35/5792ecd2d9226fd286a567de3f1696aad1c9956ac21a87e696c4ce20936c/django-admin-autocomplete-list-filter-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9e98af7aaee01641ab222e6d089b3e7a", "sha256": "2252f75eb6c72f2bc2c98da84986584d8a202b8734d1e53c59cb5b36f52cb0f5" }, "downloads": -1, "filename": "django_admin_autocomplete_list_filter-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9e98af7aaee01641ab222e6d089b3e7a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0", "size": 8175, "upload_time": "2021-09-03T14:45:04", "upload_time_iso_8601": "2021-09-03T14:45:04.449378Z", "url": "https://files.pythonhosted.org/packages/0a/6f/8411ebc7c8452d12d23fa41194ab5f5326ec31221797e7679dee42a8831c/django_admin_autocomplete_list_filter-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c22c4e8d7addf1dabd9373147c6234f8", "sha256": "135d840cf337ad0f8823fbdb128cefaba65ae0867a87422b9f495f3fa50b204c" }, "downloads": -1, "filename": "django-admin-autocomplete-list-filter-1.0.1.tar.gz", "has_sig": false, "md5_digest": "c22c4e8d7addf1dabd9373147c6234f8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0", "size": 9484, "upload_time": "2021-09-03T14:45:05", "upload_time_iso_8601": "2021-09-03T14:45:05.962386Z", "url": "https://files.pythonhosted.org/packages/6d/35/5792ecd2d9226fd286a567de3f1696aad1c9956ac21a87e696c4ce20936c/django-admin-autocomplete-list-filter-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }