A toolkit for building custom chooser popups and form widgets in the Wagtail admin interface.
wagtail-generic-chooser is a Django package that provides a toolkit for building custom chooser popups and form widgets within the Wagtail CMS admin interface. It solves the problem of creating consistent, integrated selection interfaces for custom data sources, such as Django models or REST API endpoints, without reinventing the UI.
Wagtail developers and CMS administrators who need to extend the admin interface with custom chooser components for selecting model instances or API data in forms and StreamField blocks.
Developers choose wagtail-generic-chooser because it offers a flexible, subclass-based approach to building choosers that match Wagtail's native UI, supports multiple data sources, and includes features like in-modal creation and linked field filtering.
A toolkit for custom chooser popups in Wagtail
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
ModelChooserViewSet allows rapid creation of choosers for Django models with minimal code, as demonstrated by the Person example requiring only a few attributes like model and icon.
DRFChooserViewSet enables choosers powered by Django REST Framework endpoints, useful for integrating external data sources while maintaining Wagtail's UI consistency.
Supports configurable forms within the chooser popup for creating new objects on the fly, streamlining workflows for editors without leaving the admin interface.
LinkedFieldMixin allows chooser options to be dynamically filtered based on other form inputs, enabling dependent selections like country-person relationships.
Officially deprecated as of Wagtail 5.2 in favor of built-in ChooserViewSet, meaning no new features and only critical bug fixes, making it a legacy option.
Advanced tweaks require subclassing multiple mixins and views (e.g., ChooserMixin, BaseChooseView), which can be steep and error-prone compared to simpler solutions.
Existing users must migrate to Wagtail's ChooserViewSet, involving code changes and testing, especially for custom implementations like API-based choosers or linked fields.