dealertrack / django-rest-framework-braces

Collection of utilities for working with django rest framework (DRF)
Other
73 stars 20 forks source link

ChoiceField serialiser is not compatible with ChoiceField from Django 3.2 models #30

Open blake-r opened 2 years ago

blake-r commented 2 years ago

ChoiceField serialiser is not compatible with ChoiceField from Django 3.2 models

  ....
  File "/Users/bikemap/projects/outdoorish/venv/lib/python3.6/site-packages/rest_framework/serializers.py", line 349, in fields
    for key, value in self.get_fields().items():
  File "/Users/bikemap/projects/outdoorish/venv/lib/python3.6/site-packages/drf_braces/serializers/form_serializer.py", line 235, in get_fields
    ret[field_name] = self._get_field(form_field, serializer_field_class)
  File "/Users/bikemap/projects/outdoorish/venv/lib/python3.6/site-packages/drf_braces/serializers/form_serializer.py", line 240, in _get_field
    kwargs = self._get_field_kwargs(form_field, serializer_field_class)
  File "/Users/bikemap/projects/outdoorish/venv/lib/python3.6/site-packages/drf_braces/serializers/form_serializer.py", line 273, in _get_field_kwargs
    choices = OrderedDict(attrs['choices']).keys()
TypeError: unhashable type: 'ModelChoiceIteratorValue'

(we have a mapping defined (django.)ModelChoiceField -> (rest_framework.)ChoiceField)