[Solved]-How do I change the choices in a Django model?

14👍

Django doesn’t enforce choices on a database level, it only uses them for the presentation of the widgets and in validation. If you want them a bit more ‘dynamic’, for example to have different ones on different servers you could define them via settings.py:

from django.conf import settings

COLOR_CHOICES = getattr(settings, 'COLOR_CHOICES',(
        ('R', 'Red'),
        ('B', 'Blue'),
        ('G', 'Green'),
 ))

Then you could define different choices in your settings.py (no need for any database migration!).

2👍

The field is models.CharField so the database will treat it like any other models.CharField set up in django 🙂

No, it doesn’t enforce choices / you don’t need to touch your DB.

Leave a comment