skillfed

django-multiselectfield

Django multiple select field

django-multiselectfield v1.0.1 1.2M downloads/30d#4,255 on PyPI469
Copyleft license LGPL 3 AGING released

What it is and what it does

django-multiselectfield extends Django's model and form field system to handle multiple selections from a predefined choice list. Instead of using a separate many-to-many table, it stores the selected values as a comma-separated string in a CharField, which is simpler for lightweight use cases but trades query flexibility for simplicity. The package provides two field types: MultiSelectField for basic multi-choice storage and SortMultiSelectField (added in version 1.0.0) for user-orderable selections using jQuery UI.

The package integrates directly into Django's admin interface and form rendering. It handles validation (min_choices, max_choices), provides a display method for templates, and includes CSS fixes for admin alignment. The core dependency is Django alone; it supports Python 3.8+ and Django 3.2 through 5.1. Maintenance is steady but aging, with the last release in June 2025.

Use it for:

  • Store tags or categories on a model where a many-to-many table is overkill and simple comma-separated storage suffices.
  • Add multi-select checkboxes to Django admin forms without writing custom widgets.
  • Let users rank or reorder selected items using SortMultiSelectField with jQuery UI drag-and-drop.
  • Filter Django admin list views by multiple selections using the provided SimpleListFilter pattern.
  • Display multiple selections in admin list_display using the get_FOO_display() helper.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Adds model and form fields to Django that let you store and manage multiple selections from a choice list, persisting them as comma-separated values in a CharField.

Yes, if you need lightweight multi-select storage in Django without a separate table. Install friction is minimal and the package is stable. However, consider a proper many-to-many relationship if you need complex queries, filtering, or large-scale data. The LGPL license requires source disclosure of modifications in derivative works, which is fine for most projects but needs review in proprietary contexts.

Install

django-multiselectfield on PyPI

pip

pip install django-multiselectfield

uv

uv add django-multiselectfield

poetry

poetry add django-multiselectfield

Installing django-multiselectfield

Before you install

Low friction: pure Python wheel with only Django as a runtime dependency. Last release was 2025-06-12 and repo is active with 469 stars, though maintenance status is aging (428 days since last release).

License in practice

Licensed under LGPL 3 (copyleft). You must disclose source code modifications and distribute under the same license if you redistribute the package; acceptable for most open-source and internal projects but requires review in proprietary contexts.

Quickstart

pip install django-multiselectfield

from multiselectfield import MultiSelectField

class MyModel(models.Model):
    choices = (('key1', 'Label 1'), ('key2', 'Label 2'))
    my_field = MultiSelectField(choices=choices, default=['key1'])

Requires Django 3.2+ and Python 3.8+. For SortMultiSelectField, jQuery and jQuery UI must be included in your template.

Verify before relying

  • Whether the package handles Django 5.2+ beyond the classifiers listed (5.0 and 5.1 are declared supported).
  • Performance characteristics when storing large numbers of selections in a single field.
  • Migration path if you need to convert comma-separated storage to a proper many-to-many relationship.

Package facts

License LGPL 3 (copyleft)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 1 — django
Maintenance aging — 428 days since the last release
Last repo commit
First released
Downloads 1,181,991/month — #4,255 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: django_multiselectfield-1.0.1-py3-none-any.whl

Keywords: django, multiple, select, field, choices

Development Status :: 4 - BetaFramework :: DjangoFramework :: Django :: 3.2Framework :: Django :: 4.2Framework :: Django :: 5.0Framework :: Django :: 5.1License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Tags

django multiple select fielddjango multiselect choicesdjango comma-separated choicesdjango multi-choice form fielddjango multiple checkbox fieldstore multiple selections djangodjango sortable multiselect
django-form-fieldadmin-integration

More Dynamic Content packages

MarkupSafe

MarkupSafe provides a text object that escapes…

permissive · top 100 on PyPI

Jinja2

Jinja2 is a templating engine that renders…

permissive · top 100 on PyPI

soupsieve

Soupsieve is a CSS selector library designed to…

permissive · top 100 on PyPI

Werkzeug

Werkzeug is a WSGI utility library providing…

permissive · top 1,000 on PyPI

Flask

Flask is a lightweight WSGI web application…

permissive · top 1,000 on PyPI

Mako

Mako compiles Python-embedded templates into…

permissive · top 1,000 on PyPI

django-admin-autocomplete-filter

Adds autocomplete-based filtering to Django…

copyleft · top 15,000 on PyPI

django-bitfield

Provides a BitField model field for Django that…

unclear · top 15,000 on PyPI

django-more-admin-filters

Provides a collection of Django admin filter…

permissive · top 15,000 on PyPI

djangocms-attributes-field

Provides a Django model field and widget for…

permissive · top 15,000 on PyPI

django-admin-list-filter-dropdown

Renders Django admin list filters as dropdown…

permissive · top 5,000 on PyPI

django-admin-csvexport

Adds a Django admin action that exports…

permissive · top 15,000 on PyPI

django-autoslug

Provides a Django model field that…

copyleft · top 15,000 on PyPI

django-enumfields

Provides Django model fields that store Python…

permissive · top 15,000 on PyPI

django-autocomplete-light

Provides autocomplete widgets for Django forms…

permissive · top 15,000 on PyPI

dj-inmemorystorage

An in-memory storage backend for Django that…

permissive · top 15,000 on PyPI