--- id: django-ajax-selects version: "3.0.3" license: MIT, GPL license_treatment: permissive maintenance: dormant --- # django-ajax-selects — Edit ForeignKey, ManyToManyField and CharField in Django Admin using jQuery UI AutoComplete. License: permissive · Maintenance: dormant · Downloads: 118.1K/mo ## What it is and what it does django-ajax-selects is a Django app that integrates jQuery UI AutoComplete into Django Admin to provide searchable dropdown fields for ForeignKey and ManyToMany relationships. It was created when Django lacked built-in autocomplete support; Django has since added native autocomplete_fields, making this package legacy for new projects. The package works by defining lookup channels that query your models and returning results as you type, then integrating those into admin forms via custom form fields. The package includes jQuery 3.7.1 and jQuery UI 1.13.2 by default, though you can disable these and supply your own versions. It requires Django >=3.2 and Python >=3.10. Setup involves registering lookup channels, adding the app to INSTALLED_APPS, and including the ajax_select URL patterns in your project's URL configuration. Use it for: - Migrate legacy Django Admin interfaces that rely on autocomplete for large ForeignKey fields without rewriting to native alternatives. - Customize search behavior by defining your own query logic in lookup channels beyond standard filtering. - Add autocomplete fields to forms used outside Django Admin by including form.media in your template. - Format autocomplete results with custom HTML or styling via the format_item_display method. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Adds autocomplete search fields to Django Admin for managing ForeignKey, ManyToMany, and CharField relationships using jQuery UI. No for new projects—Django 3.2+ has built-in autocomplete_fields that are better maintained and require no jQuery dependency. Yes-with-conditions for legacy codebases: if you already use this package or need its specific customization hooks, the low install friction and permissive license make it safe to keep. The dormant maintenance status means security fixes are unlikely, so audit your Django and Python versions for compatibility before upgrading. ## Install pip install django-ajax-selects uv add django-ajax-selects poetry add django-ajax-selects ## Installing django-ajax-selects Before you install: Low friction: pure Python wheel with only Django as a runtime dependency. Maintenance is dormant—last release was 699 days ago, though the repository remains active with 824 stars and no archived status. License in practice: Dual-licensed under MIT and GPL, both permissive. You may use, modify, and distribute freely under either license's terms. Quickstart: pip install django-ajax-selects # settings.py INSTALLED_APPS = (..., 'ajax_select', ...) # yourapp/lookups.py from ajax_select import register, LookupChannel @register('tags') class TagsLookup(LookupChannel): model = Tag def get_query(self, q, request): return self.model.objects.filter(name__icontains=q)[:50] Requires Django >=3.2 and Python >=3.10 Verify before relying: - Whether the package's jQuery UI 1.13.2 and jQuery 3.7.1 assets remain compatible with modern browser security policies. - Current compatibility with Django versions beyond 3.2, given the long gap since the last release. ## Package facts - License: MIT, GPL (permissive) - Python support: supports_current - Install friction: low - Maintenance: dormant - Downloads: 118.1K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags django admin autocomplete, foreignkey autocomplete field, manytomany search widget, django ajax select, admin relationship lookup, jquery ui django forms, legacy-package, django-admin [View on SkillFed](https://skillfed.io/packages/django-ajax-selects) · [View on PyPI](https://pypi.org/project/django-ajax-selects/)