Django Multiple Select Field

1.0.1 · active · verified Mon Apr 13

django-multiselectfield provides new model and form fields for Django, allowing users to select multiple options from a predefined list. The selected values are stored in the database as a CharField containing comma-separated values. The current version is 1.0.1, and the project has an irregular release cadence, with a significant 1.0.0 release in June 2025 that introduced breaking changes.

Warnings

Install

Imports

Quickstart

To use `MultiSelectField`, define your choices as a tuple of tuples. Add `multiselectfield` to your `INSTALLED_APPS` and then define a model field using `MultiSelectField`. Remember to run `makemigrations` and `migrate`.

from django.db import models
from multiselectfield import MultiSelectField

# In your settings.py, ensure 'multiselectfield' is in INSTALLED_APPS
# INSTALLED_APPS = [
#     # ...
#     'multiselectfield',
#     # ...
# ]

MY_CHOICES = (
    ('item_key1', 'Item title 1.1'),
    ('item_key2', 'Item title 1.2'),
    ('item_key3', 'Item title 1.3'),
    ('item_key4', 'Item title 1.4'),
    ('item_key5', 'Item title 1.5')
)

class MyModel(models.Model):
    my_field = MultiSelectField(choices=MY_CHOICES, default=['item_key1', 'item_key5'])
    my_field_with_limits = MultiSelectField(
        choices=MY_CHOICES,
        min_choices=2,
        max_choices=3,
        max_length=100 # Adjust max_length based on expected comma-separated string length
    )

    def __str__(self):
        return f"{self.my_field} - {self.my_field_with_limits}"

# After defining your model, run:
# python manage.py makemigrations
# python manage.py migrate

view raw JSON →