-
-
Notifications
You must be signed in to change notification settings - Fork 370
Open
Description
Problem
In Django 5.0 field choices seem to be always lists, even when defined as Choices. In Django 4.3.9 it seems to be working as expected.
Environment
- Django Model Utils version: 4.5.0
- Django version: 5.0
- Python version: 3.10
- Other libraries used, if any:
Code examples
from model_utils import Choices
class MyClass
my_field = models.CharField(
choices=Choices(("M", "Male", "MALE"), ("F", "Female", "FEMALE"))
)
Django 4.2.11
from models import MyModel
type(MyModel._meta.get_field("my_field").choices)
<class 'model_utils.choices.Choices'>
MyModel._meta.get_field("my_field").choices
Choices(("M", "Male", "MALE"), ("F", "Female", "FEMALE"))
Django 5.0
from models import MyModel
type(MyModel._meta.get_field("my_field").choices)
<class 'list'>
MyModel._meta.get_field("my_field").choices
[("M", "MALE"), ("F", "FEMALE")]
This raises an error
TypeError: list indices must be integers or slices, not str
when trying to
MyModel._meta.get_field("my_field").choices["M"]
Metadata
Metadata
Assignees
Labels
No labels