Skip to content
Switch branches/tags


Failed to load latest commit information.
Latest commit message
Commit time

Django Smart Selects

Jazzband Build Status Coverage Status PyPI

This package allows you to quickly filter or group "chained" models by adding a custom foreign key or many to many field to your models. This will use an AJAX query to load only the applicable chained objects.

Works with Django version 2.2 to 3.2.

Warning: The AJAX endpoint enforces no permissions by default. This means that any model with a chained field will be world readable. If you would like more control over this permission, the django-autocomplete-light package is a great, high-quality package that enables the same functionality with permission checks.


For more information on installation and configuration see the documentation at:

Reporting issues / sending PRs

You can try the test_app example using:

python migrate
python loaddata test_app/fixtures/*
python runserver

Then login with admin/admin at


  • Add permission checks to enable users to restrict who can use the chained fields.
  • Add a ChainedCheckboxSelectMultiple widget and adjust chainedm2m.js and chainedfk.js to build checkboxes in that case