Skip to content

makingspace/django-light-enums

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

django-light-enums

django-light-enums is a Django application for easy-to-use light-weight enums.

The general approach borrows heavily from django-enumfield, which doesn't work with Django 1.9+ and has some confusing interfaces.

How to install

pip install django-light-enums

And add to your INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    'django_light_enums',
    ...
]

An Example

Create your EnumField on your Model

from django.db import models

from django_light_enums import enum


class Dog(models.Model):

    class Size(enum.Enum):
        BIG = 10
        MEDIUM = 20
        SMALL = 30

    size = enum.EnumField(Size, default=Size.BIG)

Use it

EXTERNAL_INPUT = 50

small_dog = Dog.objects.create(size=Dog.Size.SMALL)

assert small_dog.size == Dog.Size.SMALL

assert Dog.Size.is_valid_value(EXTERNAL_INPUT) is False

assert Dog.Size.get_name(Dog.Size.SMALL) == 'SMALL'

assert Dog.Size.get_value('MEDIUM') == Dog.Size.MEDIUM

About

A simple implementation of enums for Django.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages