Opened 10 years ago
Last modified 9 years ago
#23128 closed Bug
_get_FIELD_display doesn't work with Field.get_choices using Iterators — at Initial Version
Reported by: | Areski Belaid | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Normal | Keywords: | get_choices |
Cc: | cmawebsite@… | Triage Stage: | Accepted |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Context:
This issue has been noted when fixing https://code.djangoproject.com/ticket/23112
Current behavior:
Using _get_FIELD_display on a Field.choices using Iterators, you will get the first tuple value.
Expected behavior:
Expected result is to get the human-readable name in from the iterator tuple.
Tests to reproduce the issue:
Edit tests/model_fields/tests.py
add inside class ChoicesTests(test.TestCase)
the following tests:
# def test_iterator_choices_and_field_display(self):
# """
# Check that get_choices works with Iterators (#23112).
# """
# self.assertEqual(WhizIter(c=1).get_c_display(), 'val-1') # A nested value
# self.assertEqual(WhizIter(c=9).get_c_display(), 9) # Invalid value
# self.assertEqual(WhizIter(c=None).get_c_display(), None) # Blank value
# self.assertEqual(WhizIter(c=).get_c_display(), ) # Empty value