Welcome to django-autocomplete-light’s documentation!

https://badge.fury.io/py/django-autocomplete-light.png https://secure.travis-ci.org/yourlabs/django-autocomplete-light.png?branch=master https://coveralls.io/repos/yourlabs/django-autocomplete-light/badge.png?branch=stable/2.x.x

django-autocomplete-light’s purpose is to enable autocompletes quickly and properly in a django project: it is the fruit of half a decade of R&D and thousands of contributions. It was designed for Django so that every part overridable or reusable independently. It is stable, tested, documented and fully supported: it tries to be a good neighbour in Django ecosystem.


Features include:

  • charfield, foreign key, many to many autocomplete widgets,
  • generic foreign key, generic many to many autocomplete widgets,
  • django template engine support for autocompletes, enabling you to include images etc ...
  • 100% overridable HTML, CSS, Python and Javascript: there is no variable hidden far down in the scope anywhere.
  • add-another popup supported outside the admin too.
  • keyboard is supported with enter, tab and arrows by default.
  • Django 1.8, Python3 support

Each feature has a live example and is fully documented. It is also designed and documented so that you create your own awesome features too.

Live Demo

While you can use the live demo hosted by PythonAnywhere, you can run test projects for a local demo in a temporary virtualenv.


Enabling autocompletes inside and outside of the admin has become piece of cake.

Reference and design documentation

If you need anything more than just enabling autocompletes in the admin, then you should understand django-autocomplete-light’s architecture. Because you can override any part of it.

The architecture is based on 3 main parts which you can override to build insanely creative features as many users already did.


Using just the concepts you’ve learned in the reference, here are some of the things you can do.


Any change is documented in the Change log for django-autocomplete-light, so upgrading from a version to another is always documented there. Usualy, upgrade from pip with a command like pip install -U django-autocomplete-light. Check the CHANGELOG for BC (Backward Compatibility) breaks. There should is no backward compatibility for minor version upgrades ie. from 1.1.3 to 1.1.22, but there might be some minor BC breaks for middle upgrades ie. 1.2.0 to 1.3.0.

v1 to v2

There are major changes between v1 and v2, upgrading has been extensively documented:

Indices and tables