classPrinterStatus(Enum):""" Printer statuses for frontend display """ok='ok'warning='warning'unavailable='unavailable'error='error'@classmethoddefchoices(cls):# Нужно для использования в качестве choises в полях моделей
returntuple((i.name,i.value)foriincls)print(PrinterStatus.ok)
Django
IntegerChoices
fromdjango.dbimportmodelsclassEventTypes(models.IntegerChoices):NEW_DEVICE=0,_('New device')FIRST_THRESHOLD_VALUE=1,_('First threshold value')SECOND_THRESHOLD_VALUE=8,_('Second threshold value')CONNECTION_STATUS=2,_('Connection status')CRITICAL_ERROR=3,_('Critical error')NON_CRITICAL_ERROR=4,_('Non critical error')HISTORY_REPLACE_PART=5,_('History replace part event')print(EventTypes.HISTORY_REPLACE_PART)print(EventTypes(value['event_type']).label)# Выведим текстовое описания
TextChoices
classEventSourceChoices(models.TextChoices):HAND='hand',_('Manually')AGENT='agent',_('From agent')VENDOR='vendor',_('Vendor software')FILE='file',_('Uploaded from a file')OTHER='other',_('Other')