A Django model field for native Python Enums.
TL;DR - Think twice before using this package. This is an ad hoc fork of the unmaintained Django EnumChoiceField that can be used by projects that are dependant on the said package. For new projects (or projects that look for a better way to handle enums) you are strongly_ advised to check out the maintained Django EnumFields.
from enumchoicefield import ChoiceEnum, EnumChoiceField
class Fruit(ChoiceEnum):
apple = "Apple"
banana = "Banana"
orange = "Orange"
class Profile(models.Model):
name = models.CharField(max_length=100)
favourite_fruit = EnumChoiceField(Fruit, default=Fruit.banana)
See Django EnumChoiceField on ReadTheDocs.
To run the tests:
$ virtualenv venv
$ source venv/bin/activate
$ pip install -r requirements-dev.txt
$ tox