#31057 closed Bug (invalid)
Choices enum - Inconsistent values.
| Reported by: | laevilgenius | Owned by: | nobody |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | 3.0 |
| Severity: | Normal | Keywords: | enum |
| Cc: | Shai Berger, pope1ni | Triage Stage: | Unreviewed |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Labeled enum members have their values wrapped in tuples:
class E(Choices):
FOO = 1
BAR = 2, 'bar'
>>> E.FOO.value
1
>>> E.BAR.value
(2,)
Change History (2)
comment:1 by , 6 years ago
| Cc: | added |
|---|---|
| Resolution: | → invalid |
| Status: | new → closed |
| Summary: | Choices enum - Inconsistent values → Choices enum - Inconsistent values. |
comment:2 by , 6 years ago
Could we raise an exception in such case then?
Add something like this to metaclass for example:
if classdict._member_names and cls._member_type_ is object:
raise TypeError(...)
Note:
See TracTickets
for help on using tickets.
Choicesare supported if you need a concrete data type other thanintorstr. In such cases you should subclassChoicesand the required concrete data type (see documentation and examples), so described usage is not supported. In your case you can useIntegerChoices.