{ "info": { "author": "Andrew Dunai", "author_email": "andrew@dun.ai", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "django-searchable-select\n========================\n\n.. figure:: https://travis-ci.org/and3rson/django-searchable-select.svg\n.. figure:: https://coveralls.io/repos/github/and3rson/django-searchable-select/badge.svg\n\nA better and faster multiple selection widget with suggestions for\nDjango\n\nWhat is this?\n=============\n\nThis plugin provides a replacement for standard multi-choice select on\nDjango admin pages.\n\nYou can use this as custom widget for ``ManyToManyField``.\n\nFeatures\n========\n\n- Filtering is performed on server side and thus significantly improves\n performance.\n- Uses ``Twitter Typeahead`` to provide suggestion completion.\n- Works **great** with ManyToMany fields that can be chosen from\n thousands of thousands of choices, e. g. ``User - City`` relations.\n\nBefore\n~~~~~~\n\n.. figure:: https://habrastorage.org/files/dd9/f17/87e/dd9f1787e0dd4e05826fdde08e270609.png\n :alt: Before\n\n Before\n\nAfter\n~~~~~\n\n.. figure:: https://habrastorage.org/files/db2/c87/460/db2c87460992470e9d8e19da307c169d.png\n :alt: Before\n\n Before\n\nInstallation\n============\n\n1. Install ``django-searchable-select``.\n\n .. code:: sh\n\n $ pip install django-searchable-select\n\n2. Add \u2018searchableselect\u2019 to your settings.\n\n .. code:: python\n\n # settings.py\n\n INSTALLED_APPS = (\n # ...\n 'searchableselect',\n # ...\n )\n\n3. Add URL pattern required for the suggesting engine to your root\n ``urls.py``.\n\n .. code:: python\n\n # urls.py\n\n urlpatterns = patterns(\n '',\n # ...\n url('^searchableselect/', include('searchableselect.urls')),\n # ...\n )\n\n4. Use the widget in your model admin class:\n\n .. code:: python\n\n from django import models, forms\n from searchableselect.widgets import SearchableSelect\n from models import Traveler\n\n class TravelerForm(forms.ModelForm):\n class Meta:\n model = Traveler\n exclude = ()\n widgets = {\n 'cities_visited': SearchableSelect(model='cities.City', search_field='name', limit=10)\n }\n\n\n class TravelerAdmin(admin.ModelAdmin):\n form = TravelerForm\n\n admin.site.register(Traveler, TravelerAdmin)\n\n Remember to **always** initialize ``SearchableSelect`` with three\n keyword arguments: ``model``, ``search_field`` and ``many``.\n\n - ``model`` is the string in form ``APP_NAME.MODEL_NAME``\n representing your model in the project, e. g. \u2018cities.City\u2019\n - ``search_field`` is the field within model that will be used to\n perform filtering, e. g. \u2018name\u2019\n - ``many`` must be ``True`` for ``ManyToManyField`` and ``False``\n for ``ForeignKey``.\n - ``limit`` (optional) specifies the maximum count of entries to retrieve.\n Defaults to 10.\n\nExample app\n===========\n\nJust run the project from `example` directory, head to http://127.0.0.1:8000, login as ``admin``/``admin`` and try adding Cats!\n\nSupported versions\n==================\n\n- Python 2.7.x: Django 1.7, 1.8, 1.9, 1.10\n- Python 3.x: Django 1.8, 1.9, 1.10, 2.0\n\nKnown issues\n============\n\n- Not tested with empty fields.\n\nContributing\n============\n\nI\u2019m looking forward to bug reports and any kind of contribution.\n\nLicense\n=======\n\nYou are free to use this where you want as long as you keep the author\nreference. Please see LICENSE for more info.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/and3rson/django-searchable-select", "keywords": "django", "license": "GPLv2", "maintainer": "", "maintainer_email": "", "name": "django-searchable-select", "package_url": "https://pypi.org/project/django-searchable-select/", "platform": "", "project_url": "https://pypi.org/project/django-searchable-select/", "project_urls": { "Homepage": "https://github.com/and3rson/django-searchable-select" }, "release_url": "https://pypi.org/project/django-searchable-select/1.5.0/", "requires_dist": null, "requires_python": "", "summary": "django-searchable-select - a better and faster multiple selection widget with suggestions for Django", "version": "1.5.0" }, "last_serial": 3527763, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "c11fa33398b0ec26d275af76beb02e78", "sha256": "52143a205d225f588675433ff9e7a5f0c4825fcd97339c5498bbeabd4b508521" }, "downloads": -1, "filename": "django-searchable-select-0.1.tar.gz", "has_sig": false, "md5_digest": "c11fa33398b0ec26d275af76beb02e78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10112, "upload_time": "2015-12-18T13:29:41", "url": "https://files.pythonhosted.org/packages/0f/87/9f269ac03e5db086a303a5490903cb0ee71ba9e0d2fcf14eb200f40575f0/django-searchable-select-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "323dd38ab5029aa6c6a20282ac0074e4", "sha256": "9848252f3d71d4bc5231e0ac6e213f955a63a9843fb01cb1888486e9a2b08980" }, "downloads": -1, "filename": "django-searchable-select-0.2.tar.gz", "has_sig": false, "md5_digest": "323dd38ab5029aa6c6a20282ac0074e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25526, "upload_time": "2015-12-18T13:32:38", "url": "https://files.pythonhosted.org/packages/9e/8d/b1712e35b9948e17fd32e377e64a0d0b91b435ec48e48bcd43fb3058bede/django-searchable-select-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "dce9ae87fee236a694b6fa5b0742d048", "sha256": "0235d9b1c748330e957df7ac517091a472e3f211ea97663a00ac2282814096da" }, "downloads": -1, "filename": "django-searchable-select-0.3.tar.gz", "has_sig": false, "md5_digest": "dce9ae87fee236a694b6fa5b0742d048", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25523, "upload_time": "2015-12-18T13:35:51", "url": "https://files.pythonhosted.org/packages/49/20/1ef0461d0655813eec25207d8866354fccd7c9c73a399ff30f2c4e0d8e9b/django-searchable-select-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "7aa803ee4068df6c4e133f32ff89bd1d", "sha256": "35d0f8e798febce6257a30e4f6b8885d40112431f6561e26afdd2fb5d9b005fc" }, "downloads": -1, "filename": "django-searchable-select-0.4.tar.gz", "has_sig": false, "md5_digest": "7aa803ee4068df6c4e133f32ff89bd1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25252, "upload_time": "2015-12-18T13:40:32", "url": "https://files.pythonhosted.org/packages/bc/4d/af0393a13a54e5f6e85a4e303343fd776e45b62023cf6735c367c4dc9495/django-searchable-select-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "8d99d642ba1be0332bda6c586658ff13", "sha256": "b8d35cbbd2bba19d32f3ba1dd9691f2f2d70540d95a5026bd617c1ea9590b154" }, "downloads": -1, "filename": "django-searchable-select-0.5.tar.gz", "has_sig": false, "md5_digest": "8d99d642ba1be0332bda6c586658ff13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25657, "upload_time": "2015-12-18T13:57:44", "url": "https://files.pythonhosted.org/packages/88/06/e976799f626467433e1006351def1a56786c086ab1b6c14ca789d37e1dda/django-searchable-select-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "5b1a21481fd26b18eca28b8139373530", "sha256": "72d28b3bbd2c33657e617bf0f22e13583aac3c6497f516e36a49c1843c37d97b" }, "downloads": -1, "filename": "django-searchable-select-0.6.tar.gz", "has_sig": false, "md5_digest": "5b1a21481fd26b18eca28b8139373530", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26028, "upload_time": "2015-12-18T14:03:42", "url": "https://files.pythonhosted.org/packages/35/9e/762228fa84c7077d28e7fb4ec179b6d266923e3b0c7ed9a6a619086f25fd/django-searchable-select-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "9f93289d6496c2281bb4a1c28976e30c", "sha256": "8b97accc8675b85ec851f9e91d1cbeff631a4f0384bf11429f776835fd992ee7" }, "downloads": -1, "filename": "django-searchable-select-0.7.tar.gz", "has_sig": false, "md5_digest": "9f93289d6496c2281bb4a1c28976e30c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26014, "upload_time": "2015-12-18T14:07:07", "url": "https://files.pythonhosted.org/packages/fc/ef/ca7be7f542eda2ec8c295c81f2ef90b44a352cf917ae29a6ec97ba60e084/django-searchable-select-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "24d5013cbb574971e84a99e353fcb0be", "sha256": "a3e617e19ba7086b26b277edd523d49ffc19a12d0266509b86523336f8d7d712" }, "downloads": -1, "filename": "django-searchable-select-0.8.tar.gz", "has_sig": false, "md5_digest": "24d5013cbb574971e84a99e353fcb0be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26008, "upload_time": "2015-12-18T14:11:58", "url": "https://files.pythonhosted.org/packages/da/33/787967cca972dfb164e12805f383f925fc57afb77a130157e074bfca2409/django-searchable-select-0.8.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "2227686d75299f62b54d6baf2d709059", "sha256": "7d9b8be32e31fb2b977baef08d3c26af72201e7ad14ab0d8c504cb436ac25a9f" }, "downloads": -1, "filename": "django-searchable-select-1.1.tar.gz", "has_sig": false, "md5_digest": "2227686d75299f62b54d6baf2d709059", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26285, "upload_time": "2015-12-20T00:29:51", "url": "https://files.pythonhosted.org/packages/90/15/49ddc3f109dc17e4eb62f95e69f980fde29978177e4e534b62850ed82785/django-searchable-select-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "d2b51268ba0edb9ed2218e3ec607c690", "sha256": "5cc8c2c39deb47edf86f5f92934d7e0bebe84e7982e8669447710ac5e371bf8e" }, "downloads": -1, "filename": "django-searchable-select-1.2.tar.gz", "has_sig": false, "md5_digest": "d2b51268ba0edb9ed2218e3ec607c690", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26277, "upload_time": "2015-12-20T00:31:18", "url": "https://files.pythonhosted.org/packages/ce/5c/9bcdec16ae92f979fac2c2773135e5735633c76d46d7de1c758890c3bc14/django-searchable-select-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "b7cf1c44275518bc5cc23e492c212e2b", "sha256": "7f2ea39754d42c151a9993d805d7a6f21343492831f0f1c0278f1fc105e34bc3" }, "downloads": -1, "filename": "django-searchable-select-1.3.tar.gz", "has_sig": false, "md5_digest": "b7cf1c44275518bc5cc23e492c212e2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24790, "upload_time": "2016-02-04T13:44:33", "url": "https://files.pythonhosted.org/packages/7d/37/c06d054101394e6e9ef27cf5dc4cadbe7b04b453f8f91c60884cc198895c/django-searchable-select-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "3357bf51ff085f1f668f4e2741031725", "sha256": "b3b459775d3c23dc7f274e21627109337826848c6e76cc7d52f517a52a4df80a" }, "downloads": -1, "filename": "django-searchable-select-1.4.tar.gz", "has_sig": false, "md5_digest": "3357bf51ff085f1f668f4e2741031725", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58162, "upload_time": "2016-10-28T15:39:57", "url": "https://files.pythonhosted.org/packages/3f/05/12f77223ca01aa0c620f7e4efd02dfde576a7d9329da69074fc130c71cf9/django-searchable-select-1.4.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "cd35e82d38abc6cdfbe2bee67e4ba3a0", "sha256": "d802eee04e9517d22a9de74ece619f5988f3a9dfdebdf3cb308351a7c96c8a7d" }, "downloads": -1, "filename": "django-searchable-select-1.4.1.tar.gz", "has_sig": false, "md5_digest": "cd35e82d38abc6cdfbe2bee67e4ba3a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58124, "upload_time": "2016-10-28T15:42:19", "url": "https://files.pythonhosted.org/packages/85/2c/431bb125a96abab1dc27099edc3b8b8764b663aa01aafc23e5cf3c0bedbb/django-searchable-select-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "61a8be3670fc03201c74c8d963e6fc19", "sha256": "95b7575c45387ba8bca9c7427a36f393fd4258cae58283d6d34c5f489e21c064" }, "downloads": -1, "filename": "django-searchable-select-1.4.2.tar.gz", "has_sig": false, "md5_digest": "61a8be3670fc03201c74c8d963e6fc19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58624, "upload_time": "2016-10-30T16:34:45", "url": "https://files.pythonhosted.org/packages/c4/74/52c21e6343e890bf23107bfde08098d4fe7cc6fc1c6fb4a27bafc40613df/django-searchable-select-1.4.2.tar.gz" } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "53c4bc651720da23bc043c5c28b81c21", "sha256": "dbe421721a4fdecb71bdb1cbe6e4fe3f84d47085d70de794ebb66b562174f83f" }, "downloads": -1, "filename": "django-searchable-select-1.4.3.tar.gz", "has_sig": false, "md5_digest": "53c4bc651720da23bc043c5c28b81c21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58617, "upload_time": "2016-10-30T16:38:11", "url": "https://files.pythonhosted.org/packages/5c/39/11befa1f5fc267b992d828c4e65340ed333e668b5096a6db18265af9902d/django-searchable-select-1.4.3.tar.gz" } ], "1.4.3.post1": [ { "comment_text": "", "digests": { "md5": "414d5049fb842e5adcff13988806b118", "sha256": "b62bfde3f762e940a7a5edef1b6f9fd83b56c86f9fadc70c80c4d1e243b06670" }, "downloads": -1, "filename": "django-searchable-select-1.4.3.post1.tar.gz", "has_sig": false, "md5_digest": "414d5049fb842e5adcff13988806b118", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60396, "upload_time": "2016-12-02T11:36:40", "url": "https://files.pythonhosted.org/packages/e7/b9/2b25150be53c16a04581bd0dda922e7fe2bf68b780db2ea527e627dbb133/django-searchable-select-1.4.3.post1.tar.gz" } ], "1.4.4": [ { "comment_text": "", "digests": { "md5": "73a0524be3374f3f8c3d3c69e47244a6", "sha256": "8ae2647168caac61a4ff5a77f16719351b62849c4d078eaea8fbe847a3970330" }, "downloads": -1, "filename": "django-searchable-select-1.4.4.tar.gz", "has_sig": false, "md5_digest": "73a0524be3374f3f8c3d3c69e47244a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60703, "upload_time": "2017-02-28T14:26:30", "url": "https://files.pythonhosted.org/packages/13/2a/0042fd5910f4667105c861c9c9d508ab8729104870039608fd0df4875032/django-searchable-select-1.4.4.tar.gz" } ], "1.4.4.post1": [ { "comment_text": "", "digests": { "md5": "109775c17f5bddcf99a48ca65009dae2", "sha256": "2120ba267030cf072c68667bb01b7060151a7530cd581a3d93b7295700d8089d" }, "downloads": -1, "filename": "django-searchable-select-1.4.4.post1.tar.gz", "has_sig": false, "md5_digest": "109775c17f5bddcf99a48ca65009dae2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60826, "upload_time": "2017-02-28T14:27:52", "url": "https://files.pythonhosted.org/packages/3b/36/ac4b2c1a830d05d93880d5c2ea1ac92c89492dfc677f933a9a8e690847c2/django-searchable-select-1.4.4.post1.tar.gz" } ], "1.4.4.post2": [ { "comment_text": "", "digests": { "md5": "6f3d4f4c3933634e43d38df80231e8fc", "sha256": "fe401863c03cf03a50cb5900629b247276f6d489ee4ea1ddfe427f2efccb31b7" }, "downloads": -1, "filename": "django-searchable-select-1.4.4.post2.tar.gz", "has_sig": false, "md5_digest": "6f3d4f4c3933634e43d38df80231e8fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60856, "upload_time": "2017-02-28T14:28:55", "url": "https://files.pythonhosted.org/packages/35/d4/20390953c5250ee8b9c6bd2dff1ab0d6d048e5549d1ac36da87d85f5c86e/django-searchable-select-1.4.4.post2.tar.gz" } ], "1.4.4.post3": [ { "comment_text": "", "digests": { "md5": "e931b83dd9c0bb927edbee0c3a5f497b", "sha256": "1456c7bca54d9f8b196197b6ff23fbb51c9db66d29046a4906ef500053faa549" }, "downloads": -1, "filename": "django-searchable-select-1.4.4.post3.tar.gz", "has_sig": false, "md5_digest": "e931b83dd9c0bb927edbee0c3a5f497b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60848, "upload_time": "2017-02-28T16:37:27", "url": "https://files.pythonhosted.org/packages/37/87/be49ce1d1d6daf56755c736444a1a7697416e5b7b5ec15bfcc3869e6932d/django-searchable-select-1.4.4.post3.tar.gz" } ], "1.4.5": [ { "comment_text": "", "digests": { "md5": "e634cace559744f4a4be4647498992e3", "sha256": "cc4e5a2153310e04a2caaed160be7a5a4d810ed4982b8e55818960a5de85db9c" }, "downloads": -1, "filename": "django-searchable-select-1.4.5.tar.gz", "has_sig": false, "md5_digest": "e634cace559744f4a4be4647498992e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61565, "upload_time": "2017-04-18T11:29:55", "url": "https://files.pythonhosted.org/packages/70/50/9b0d72ca31c8d4451080a31b23fb41fc4c8c4fefa4ba7015d5115ef019b6/django-searchable-select-1.4.5.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "d436187b476ad7e24da31f969eb7e0fc", "sha256": "51f0695adf3769f12992ca5baf7818ad7033f9783c87cffca384d22d51e4bc4e" }, "downloads": -1, "filename": "django-searchable-select-1.5.0.tar.gz", "has_sig": false, "md5_digest": "d436187b476ad7e24da31f969eb7e0fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61760, "upload_time": "2018-01-27T23:02:05", "url": "https://files.pythonhosted.org/packages/e9/61/351c78d5ac0c18164657df0a4569ceb1a70ed0bdc7f72761816929742a04/django-searchable-select-1.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d436187b476ad7e24da31f969eb7e0fc", "sha256": "51f0695adf3769f12992ca5baf7818ad7033f9783c87cffca384d22d51e4bc4e" }, "downloads": -1, "filename": "django-searchable-select-1.5.0.tar.gz", "has_sig": false, "md5_digest": "d436187b476ad7e24da31f969eb7e0fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61760, "upload_time": "2018-01-27T23:02:05", "url": "https://files.pythonhosted.org/packages/e9/61/351c78d5ac0c18164657df0a4569ceb1a70ed0bdc7f72761816929742a04/django-searchable-select-1.5.0.tar.gz" } ] }