一个django扩展,可以在choicefields上做出更像枚举的“选择”。

serious-django-enums的Python项目详细描述


https://github.com/serioeseGmbH/serious-django-enums

严肃的django枚举定义了一个类似枚举的类AutoEnum,它打算将模式组合在一起 定义django使用的选择字段,以及像大多数人知道的那样直观地使用枚举。

考虑一下您在choicefield上定义选择的示例,例如:

class SomeForm(forms.Form):
    ...
    STATE_CHOICES = (
        ("ACTIVE", "active"),
        ("ENDED", "ended"),
    )
    field = forms.ChoiceField(choices=STATE_CHOICES, default="ACTIVE")

这个包提供给您的是将它包装在一个类中,并将其作为类属性进行访问:

class States(AutoEnum):
    choices = (
        ("ACTIVE", "active"),
        ("ENDED", "ended"),
    )

class SomeForm(forms.Form):
    field = forms.ChoiceField(choices=States.choices, default=States.ACTIVE)

它的优点是可以从代码的不同部分导入,而不直接绑定到表单,还提供了漂亮的属性访问,而不是像字典一样的键访问。

这个定义目前非常基本,但很适合我们的需要。

快速启动

  1. 使用pip安装软件包:

    pip install serious-django-enums
    
  2. 导入serious_django_enums.AutoEnum并将其子类化,在类上定义choices属性。

  3. 在需要的地方使用autoenum子类的自动定义成员属性。

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

推荐PyPI第三方库


热门话题
java如何在点击JButton触发的进程仍在处理时更新JLabel?   try-catch为什么Java有嵌套的try语句?   java SSH命令执行失败,出现异常“net.schmizz.sshj.connection.ConnectionException:引发连接重置异常”   java在ApacheCamel的接口类解析器中,resolveMandatoryClass(字符串名称)有什么用途?   java如何在Eclipse远程调试器中找到有问题的线程?   java线程:containerlaunch退出代码127的异常   lambda左连接Java中的2个对象列表   Swift 2.0协议扩展和Java/C抽象类之间有区别吗?   安卓改造:使用GSON将JSON解析为多个Java对象   Spring中服务层的java角色(澄清)   html Java与网站的通信   Spring boot rest api是在不创建java类的情况下将getResultList()转换为映射以显示响应的最佳方法吗?   使用“getElementById”从javascript获取值到java   java如何在文本视图中以粗体和多色显示文本   java是设置TextView颜色的最有效方法