Metadata-Version: 2.1
Name: django-rest-enumfield
Version: 0.2.0
Summary: EnumField for Django REST Framework
Home-page: https://github.com/shosca/django-rest-enumfield
Author: Serkan Hosca
Author-email: serkan@hosca.com
License: MIT
Keywords: enum django rest framework drf rest_framework
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 2.0
Classifier: Framework :: Django :: 2.1
Classifier: Framework :: Django :: 2.2
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP
Requires-Dist: django
Requires-Dist: djangorestframework

Django REST EnumField
=====================

|Build Status| |PyPI version| |Coveralls Status| |Black|

**EnumField that uses python enums for Django REST Framework**

Installation
============

::

   pip install django-rest-enumfield


Usage
=====

Use it as if its a ``ChoiceField``:

.. code:: python

   import enum
   from rest_enumfield import EnumField

   class Color(enum.Enum):
      RED = "red"
      GREEN = "green"
      BLUE = "blue"

   class SomeSerializer(Serializer):

      color = EnumField(choices=Color)


Additionally you can override choice name and value generation by providing ``to_choice`` or ``to_repr`` arguments:

.. code:: python

   class SomeSerializer(Serializer):

      color = EnumField(choices=Color, to_choice=lambda x: (x.value, x.name), to_repr=lambda x: x.value)

This will cause the enum's value instead of the name to be represented.

Thats it.

.. |Build Status| image:: https://travis-ci.com/shosca/django-rest-enumfield.svg?branch=master
   :target: https://travis-ci.com/shosca/django-rest-enumfield
.. |PyPI version| image:: https://badge.fury.io/py/django-rest-enumfield.svg
   :target: https://badge.fury.io/py/django-rest-enumfield
.. |Coveralls Status| image:: https://coveralls.io/repos/github/shosca/django-rest-enumfield/badge.svg?branch=master
   :target: https://coveralls.io/github/shosca/django-rest-enumfield?branch=master
.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://github.com/ambv/black
