jQuery UI-powered auto-complete fields for ForeignKey, ManyToMany and text fields
Python JavaScript HTML Makefile CSS Shell
Clone or download
Pull request Compare This branch is 353 commits ahead of sjrd:master.
crucialfelix Merge pull request #233 from chozabu/chozabu-readme-avoid-stackoverflow
Add info to readme about using outside of admin
Latest commit 5f59aa8 Jun 20, 2018

README.md

Edit ForeignKey, ManyToManyField and CharField in Django Admin using jQuery UI AutoComplete.

Build Status PyPI version


selecting

selected

Documentation

http://django-ajax-selects.readthedocs.org/en/latest/

Quick Usage

Define a lookup channel:

# yourapp/lookups.py
from ajax_select import register, LookupChannel
from .models import Tag

@register('tags')
class TagsLookup(LookupChannel):

    model = Tag

    def get_query(self, q, request):
        return self.model.objects.filter(name__icontains=q).order_by('name')[:50]

    def format_item_display(self, item):
        return u"<span class='tag'>%s</span>" % item.name

Add field to a form:

# yourapp/forms.py
from ajax_select.fields import AutoCompleteSelectMultipleField

class DocumentForm(ModelForm):

    class Meta:
        model = Document

    tags = AutoCompleteSelectMultipleField('tags')

This will now work in the Django Admin.

To use a form outside, be sure to include form.media on the template where you place the form:

{{ form.media }}
{{ form }}

Read the full documention here: outside of the admin

Fully customizable

  • Customize search query
  • Query other resources besides Django ORM
  • Format results with HTML
  • Customize styling
  • Customize security policy
  • Add additional custom UI alongside widget
  • Integrate with other UI elements elsewhere on the page using the javascript API
  • Works in Admin as well as in normal views

Assets included by default

  • //ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
  • //code.jquery.com/ui/1.10.3/jquery-ui.js
  • //code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css

Compatibility

  • Django >=1.8, <=2.1
  • Python >=2.7, 3.3+

Contributors

Many thanks to all contributors and pull requesters !

https://github.com/crucialfelix/django-ajax-selects/graphs/contributors

License

Dual licensed under the MIT and GPL licenses: