skip to navigation
skip to content

Not Logged In

django-enumfields 0.4.1

Real Python Enums for Django.

Latest Version: 0.7.4

This package lets you use real Python (PEP435-style) enums with Django.

Installation

  1. pip install django-enumfields

Included Tools

EnumField, EnumIntegerField

from enumfields import EnumField
from enum import Enum  # Uses Ethan Furman's "enum34" backport

class MyModel(models.Model):

    class Color(Enum):
        RED = 'r'
        GREEN = 'g'
        BLUE = 'b'

    color = EnumField(Color, max_length=1)

Elsewhere:

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

EnumIntegerField works identically, but the underlying storage mechanism is an IntegerField instead of a CharField.

Enum

Normally, you just use normal PEP435-style enums, however, django-enumfields also encludes its own version of Enum with a few extra bells and whistles. Namely, the smart definition of labels which are used, for example, in admin dropdowns. By default, it will create labels by title-casing your constant names. You can provide custom labels with a nested “Labels” class.

from enumfields import EnumField, Enum  # Our own Enum class

class MyModel(models.Model):

    class Color(Enum):
        RED = 'r'
        GREEN = 'g'
        BLUE = 'b'

        class Labels:
            RED = 'A custom label'

    color = EnumField(Color, max_length=1)

assert MyModel.Color.GREEN.label == 'Green'
assert MyModel.Color.RED.label == 'A custom label'
 
File Type Py Version Uploaded on Size
django-enumfields-0.4.1.tar.gz (md5) Source 2014-07-11 6KB
  • Downloads (All Versions):
  • 27 downloads in the last day
  • 308 downloads in the last week
  • 2729 downloads in the last month