A custom Django field able to use subclasses of Python's internal `Enum` class as choices
Project description
django-enum-choices
A custom Django field able to use subclasses of Python's internal Enum
class as choices
Installation
git clone https://github.com/slavov-v/django-enum-choices.git
pip install -e some-directory/django_enum_choices
Basic Usage
# enums.py
from enum import Enum
class FooBarEnumeration(Enum):
FOO = 'foo'
BAR = 'bar'
# models.py
from django import models
from django_enum_choices.fields import EnumChoiceField
from .enums import FooBarEnumeration
class MyModel(models.Model):
foo_bar_field = EnumChoiceField(enum_class=FooBarEnumeration)
# python manage.py shell
In [1]: instance = MyModel.objects.create(foo_bar_field=FooBarEnumeration.BAR)
In [2]: instance.foo_bar_field
Out[2]: <FooBarEnumeration.BAR: 'bar'>
Usage with Django Rest Framework
# serializers.py
from rest_framework import serializers
from django_enum_choices.serializers import EnumChoiceField
class MyModelSerializer(serializers.ModelSerializer):
foo_bar_field = EnumChoiceField(enum_class=FooBarEnumeration)
class Meta:
model = MyModel
fields = ('foo_bar_field', )
# python manage.py shell
In [1]: instance = MyModel.objects.create(foo_bar_field=FooBarEnumeration.BAR)
In [2]: MyModelSerializer(instance).data
Out[2]: {'foo_bar_field': 'bar'}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for django_enum_choices-0.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d064297e17239282574e6e354bf45387d9863fd2c274463318feb802f7619142 |
|
MD5 | 7303a8786c11937b6d91a06287fa965b |
|
BLAKE2b-256 | 8216fd8af58761bff2f904ae658efe4dfe466c6f3566d1cf5a38601fe7729c65 |
Close
Hashes for django_enum_choices-0.0.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4cb4373a673144c50c8964abb7e9a38261aca0a5b1680fa07f99f286b3cf028 |
|
MD5 | dd1f451161940a6bbb2bc4e4429ed099 |
|
BLAKE2b-256 | 7f6a19f232608f4b7913281bee74a70e7314553a6b98cc918eab378b0de0dd72 |