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


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

Build Status PyPI version





Quick Usage

Define a lookup channel:

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

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


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


Many thanks to all contributors and pull requesters !



Dual licensed under the MIT and GPL licenses: