django的真正python枚举。

django-enumfields的Python项目详细描述


这个包允许您在django中使用真正的python(PEP435样式)枚举。

https://travis-ci.org/hzdg/django-enumfields.svg?branch=master

安装

  1. pip install django-enumfields

包括的工具

EnumField,EnumIntegerField

fromenumfieldsimportEnumFieldfromenumfieldsimportEnum# Uses Ethan Furman's "enum34" backportclassColor(Enum):RED='r'GREEN='g'BLUE='b'classMyModel(models.Model):color=EnumField(Color,max_length=1)

其他地方:

m=MyModel.objects.filter(color=Color.RED)

EnumIntegerField的工作原理相同,但是底层的存储机制是 一个IntegerField,而不是一个CharField

表单中的用法

调用formfield方法直接在Form中使用EnumField

classMyForm(forms.Form):color=EnumField(Color,max_length=1).formfield()

枚举

通常,您只使用普通的PEP435样式的枚举,但是,django枚举字段 此外,它自己的Enum版本还包含了一些额外的铃声和口哨声。 也就是说,在管理中使用的标签的智能定义 下拉列表。默认情况下,它将通过标题大小写常量来创建标签 名字。可以为自定义标签提供嵌套的“标签”类。

fromenumfieldsimportEnumField,Enum# Our own Enum classclassColor(Enum):RED='r'GREEN='g'BLUE='b'classLabels:RED='A custom label'classMyModel(models.Model):color=EnumField(Color,max_length=1)assertColor.GREEN.label=='Green'assertColor.RED.label=='A custom label'

EnumFieldListFilter

enumfields.admin.EnumFieldListFilter是为了允许在 list_filter

fromenumfields.adminimportEnumFieldListFilterclassMyModelAdmin(admin.ModelAdmin):list_filter=[('color',EnumFieldListFilter)]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javai是JAXB的新手。如何将两个具有不同名称空间的不同xml合并为一个具有根元素的xml并将其解组?   JDO中的java应该是可传递的DefaultFetchGroup吗   java服务器配置问题   java在理解JList时遇到困难   java何时将RequestContextFilter用于Jersey?   java从数据库中读取文本文件。jar文件   Java正则表达式,仅适用于不包括零的正数   爪哇番石榴。类路径中的jar   JavaEE:关于设计的问题   java GUI,在面板中排列按钮   java Android为什么使用接口被认为是活动和片段之间通信的最佳实践?   java如何获取wicket图像的url以在开放图元标记中使用它   从Java字节[]>Base64>Javascript数组缓冲>Base64>byte[]   java正则表达式帮助字符串JWE766。1.pdf格式摘录766   java Hibernate,JPA忽略@Formula