跳转到主要内容

Django友好型、可迭代的带标签枚举类型。

项目描述

labeled-enums
=============

一个Django友好的可迭代带标签枚举类型。

示例
-------

.. code-block:: python

>>> from django.utils.translation import gettext_lazy as _
>>> from lenum import LabeledEnum
>>> class STATE_CHOICES(LabeledEnum)
... NEW = 0
... IN_PROGRESS = 1
... REVIEW = 2, _('In Review')
...
>>>
>>> STATE_CHOICES.NEW
0
>>> STATE_CHOICES.IN_PROGRESS
1
>>> STATE_CHOICES[2]
'In Review'
>>> list(STATE_CHOICES)
[(0, 'New'), (1, 'In Progress'), (2, 'In Review')]

>>> STATE_CHOICES.for_label('In Progress')
1
```

>>> STATE_CHOICES.names
('NEW', 'IN_PROGRESS', 'REVIEW')

Django中的使用

.. code-block:: python

class STATUS(LabeledEnum)
CLOSED = 0
NEW = 1
PENDING = 2, 'Process Pending'
FAILED = -1, 'Processing Failed'

class MyModel(models.Model)
# django migrations can have trouble resolving imports if we define the
# class within the class, so we bind this here for convenience.
STATUS = STATUS

status = models.IntegerField(choices=STATUS, default=STATUS.NEW)

需要翻译吗?

.. code-block:: python
from django.utils.translation import gettext_lazy as _

class STATUS(LabeledEnum, label_wrapper=_)
CLOSED = 0
NEW = 1
PENDING = 2, 'Process Pending'
FAILED = -1, 'Processing Failed'

所有标签值(包括自动生成的)将首先应用`label_wrapper`。


安装
------------

.. code-block:

pip install labeled-enum

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪一个,请了解更多关于 安装软件包 的信息。

源代码分发

labeled-enum-1.3.1.tar.gz (2.3 kB 查看哈希值)

上传时间 源码

支持