python的django枚举库。

django-richenum的Python项目详细描述


django richenum

Build StatusLatest PyPI VersionPython versionsPypi Downloads

关于

richenum对python的django扩展。如果您不熟悉richenum,请在使用django richenum之前阅读它们(请参见Related Packages)。

模型字段

索引字段
将int存储在db中,但在python中公开orderedrichenumvalues。
规范名称字段
将varchar存储在db中,但在python中公开richenumvalues。 我们建议您使用indexenumfield来提高存储和查询效率。
松弛指数
与indexenumfield类似,但也允许在规范名称之间进行强制转换。 主要用于帮助将使用字符串的现有代码迁移为数据库值。

表单域

规范化字段
使用richenum/orderedrichenum规范名称作为表单字段值。
索引字段
使用orderedrichenum索引作为表单字段值。

Django管理

RichEnumFieldListFilter
启用django管理用户界面中的按richenum模型字段筛选

安装

$ pip install django-richenum

示例用法

索引字段

>>>fromrichenumimportOrderedRichEnum,OrderedRichEnumValue>>>classMyOrderedRichEnum(OrderedRichEnum):...FOO=OrderedRichEnumValue(index=1,canonical_name="foo",display_name="Foo")...BAR=OrderedRichEnumValue(index=2,canonical_name="bar",display_name="Bar")...>>>fromdjango.dbimportmodels>>>fromdjango_richenum.modelsimportIndexEnumField>>>classMyModel(models.Model):...my_enum=IndexEnumField(MyOrderedRichEnum,default=MyOrderedRichEnum.FOO)...>>>m=MyModel.objects.create(my_enum=MyOrderedRichEnum.BAR)>>>m.save()>>>m.my_enumOrderedRichEnumValue-idx:2canonical_name:'bar'display_name:'Bar'>>>MyModel.objects.filter(my_enum=MyOrderedRichEnum.BAR)

规范名称字段

>>>fromrichenumimportRichEnum,RichEnumValue>>>classMyRichEnum(RichEnum):...FOO=RichEnumValue(canonical_name="foo",display_name="Foo")...BAR=RichEnumValue(canonical_name="bar",display_name="Bar")...>>>fromdjango.dbimportmodels>>>fromdjango_richenum.modelsimportCanonicalNameEnumField>>>classMyModel(models.Model):...my_enum=CanonicalNameEnumField(MyRichEnum,default=MyRichEnum.FOO)...>>>m=MyModel.objects.create(my_enum=MyRichEnum.BAR)>>>m.save()>>>m.my_enumRichEnumValue-canonical_name:'bar'display_name:'Bar'>>>MyModel.objects.filter(my_enum=MyRichEnum.BAR)

richenumfieldlistfilter

>>>fromdjango_richenum.adminimportregister_admin_filters>>>register_admin_filters()

注释

如果您使用的是django 1.7+,则需要为您的RichEnumValueOrderedRichEnumValue类使用@deconstructible装饰符,这样django的迁移框架就知道如何序列化您的RichEnumValueOrderedRichEnumValue

>>>fromdjango.utils.deconstructimportdeconstructible>>>fromrichenumimportRichEnumValue,OrderedRichEnumValue>>>@deconstructible...classCustomRichEnumValue(RichEnumValue):...pass...>>>@deconstructible...classCustomOrderedRichEnumValue(OrderedRichEnumValue):...pass...

贡献

  1. 将回购协议从GitHub分叉。
  2. 做些改变。
  3. 为更改添加单元测试。
  4. 运行pep8pyflakespylint以确保您的更改遵循python样式指南并且没有任何错误。
  5. 将自己添加到authors文件(按字母顺序)。
  6. 从分叉向主回购发送拉取请求。

更改日志

3.6.0(2019-07-09)

  • Support for Django 2.2
  • Support for Python 3.7
  • Remove support for Django 2.0

3.5.0(2018-09-10)

3.4.0(2018-02-10)

  • Drop support for old Django versions

3.3.0(2018-01-21)

  • removed Python 3.4
  • add support for Python 3.6
  • add support for Django 2.0
  • Properly mark raw strings (used as regex)

3.2.0(2016-08-22)

  • Python 3.4 & 3.5 support

3.1.0(2015-08-02)

  • Django 1.10 support

3.0.1(2015-07-13)

  • Prepare for python 3 support

2.4.1(2015-05-04)

  • replace mysql client library (for tests)
  • stop using lambdas

2.3.0(2015-05-04)

  • Support Django 1.8

2.2.0(2015-03-11)

  • Support ModelForms for non-SQLite DB backends

2.1.0(2014-11-01)

  • Support migration in Django 1.7

2.0.0(2014-09-04)

  • Support Django 1.7, drop support for Python 2.6.

1.2.2(2014-08-02)

  • Support Django 1.3

1.2.1(2014-06-02)

  • Remove uses of BaseException.message.

1.2.0(2013-12-03)

  • Add enum-aware versions of TypedMultipleChoiceField.

1.1.0(2013-12-03)

  • Fix form fields to support Django 1.6 (while maintaining compatibility with 1.4 and 1.5).

1.0.2(2013-11-05)

  • Make EnumField.run_validators a no-op. This stops some warnings from type comparison, and it doesn’t seem useful in an EnumField context.

1.0.1(2013-09-10)

  • Support South.

1.0.0(2013-08-16)

  • Initial public release.

Hearsay Social, Inc.开发和维护。

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

推荐PyPI第三方库


热门话题
html如何在JavaScript中获取当前Windows用户的名称   用于屏蔽电子邮件的java正则表达式   java Jsoup Android解析   为了避免在运行时缺少Java泛型,将超类型绑定到子类实例   java JTextArea。setText(空);不会释放内存   安卓源Java OutOfMemoryError在构建AOSP 10时出错   java打印到达数组末尾所需的最小跳数序列   使用mvn命令的java Selenium TestNG并行执行   javasocket编程:在关闭服务器之前通知所有客户端   java如何在加载新的安卓片段时显示progressbar?   java从actor系统中删除AKKA actor,并创建另一个具有相同路径名的actor   java我可以用浓缩咖啡做性能测试,还是应该用其他东西?   JavaTreeView(TreeItem)是否可以获取层次结构索引?   带远程服务的java Android应用程序