django-searchable-select - a better and faster multiple selection widget with suggestions for Django
Project description
django-searchable-select
A better and faster multiple selection widget with suggestions for Django
What is this?
This plugin provides a replacement for standard multi-choice select on Django admin pages.
You can use this as custom widget for ManyToManyField.
Features
Filtering is performed on server side and thus significantly improves performance.
Uses Twitter Typeahead to provide suggestion completion.
Works great with ManyToMany fields that can be chosen from thousands of thousands of choices, e. g. User - City relations.
Before
After
Installation
Install django-searchable-select.
$ pip install django-searchable-select
Add ‘searchableselect’ to your settings.
# settings.py INSTALLED_APPS = ( # ... 'searchableselect', # ... )
Add URL pattern required for the suggesting engine to your root urls.py.
# urls.py urlpatterns = patterns( '', # ... url('^searchableselect/', include('searchableselect.urls')), # ... )
Use the widget in your model admin class:
from django import models, forms from searchableselect.widgets import SearchableSelect from models import Traveler class TravelerForm(forms.ModelForm): class Meta: model = Traveler exclude = () widgets = { 'cities_visited': SearchableSelect(model='cities.City', search_field='name', limit=10) } class TravelerAdmin(admin.ModelAdmin): form = TravelerForm admin.site.register(Traveler, TravelerAdmin)
Remember to always initialize SearchableSelect with three keyword arguments: model, search_field and many.
model is the string in form APP_NAME.MODEL_NAME representing your model in the project, e. g. ‘cities.City’
search_field is the field within model that will be used to perform filtering, e. g. ‘name’
many must be True for ManyToManyField and False for ForeignKey.
limit (optional) specifies the maximum count of entries to retrieve. Defaults to 10.
Example app
Just run the project from example directory, head to http://127.0.0.1:8000, login as admin/admin and try adding Cats!
Supported versions
Python 2.7.x: Django 1.7, 1.8, 1.9, 1.10
Python 3.x: Django 1.8, 1.9, 1.10, 2.0
Known issues
Not tested with empty fields.
Contributing
I’m looking forward to bug reports and any kind of contribution.
License
You are free to use this where you want as long as you keep the author reference. Please see LICENSE for more info.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-searchable-select-1.5.0.tar.gz
.
File metadata
- Download URL: django-searchable-select-1.5.0.tar.gz
- Upload date:
- Size: 61.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51f0695adf3769f12992ca5baf7818ad7033f9783c87cffca384d22d51e4bc4e |
|
MD5 | d436187b476ad7e24da31f969eb7e0fc |
|
BLAKE2b-256 | e961351c78d5ac0c18164657df0a4569ceb1a70ed0bdc7f72761816929742a04 |