Django 5.0: Choices not working
MiltosD opened this issue · 1 comments
MiltosD commented
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"]
foarsitter commented
Can you provide a PR with a failing testcase?