Released: django-select-multiple-field
Version 1.0.0 of django-select-multiple-field is finally out. It took over a decade of slow development to get here, but the first stable release is ready. If you are still running the 0.4.2 release from way back in 2015, this is the update you have been waiting for.
What it does
The core idea behind the field has not changed. You can store multiple choices inside a single model column as a Python list without creating extra many-to-many join tables.
Ready for modern Django
Why you should upgrade to 1.0.0:
- Python 3.10 through 3.14 are supported along with Django 4.2 LTS, 5.2 LTS, and 6.x. The
toxmatrix runs 210 tests across all those combinations, so you do not have to worry about subtle breakages. - Selection order and duplicate values are preserved when passed through the database. The system does not silently reorder or collapse your data.
- Validation is much tighter now. Dedicated validators enforce your choice limits with clear error codes, and bad field setups are caught when instantiated rather than failing quietly later.
- The feature set is expanded. You get a configurable CSV delimiter, callable choices support, optgroups, and automatic length calculations. You can also pass
null=Trueif you prefer storing database NULLs instead of empty strings. Check out the README on Github for more on that. - The form widget was renamed to
SelectMultipleWidgetto fix a confusing name collision. The old widget name still works with a deprecation warning so your code will not break overnight. - A deep code review fixed two dozen outstanding issues, and every fix is backed by good test coverage.
Installing the package takes a single command:
pip install django-select-multiple-field
You will need Python 3.10 or newer and Django 4.2 or newer. The code is licensed under the BSD license.
Check the README on GitHub for the full documentation on form fields, custom delimiters, and validation error codes. If you run into any bugs, open a ticket on the issue tracker.
Let's Work Together
I am based in Victoria, British Columbia, and I work with businesses across Vancouver Island and the Pacific Northwest. If the developer that built your Django application has moved on and no one is maintaining your codebase, or if you run an MSP and a client is asking for custom software work your team does not handle, I'd love to hear from you.
Schedule a free 30-minute consultation to talk about your needs. No commitment required.