From 5272cc471d5fd145c687e9fe3182e353590cc3ca Mon Sep 17 00:00:00 2001 From: ebsuku Date: Fri, 12 Jan 2024 20:51:36 +0200 Subject: [PATCH] add documentation for django rest framework integration --- README.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/README.md b/README.md index a8943a5..19e5280 100644 --- a/README.md +++ b/README.md @@ -195,6 +195,42 @@ class PersonForm(forms.Form): Rendering `PersonForm` in a template will generate a select-box with "Male" and "Female" as option labels for the gender field. +### Django Rest Framework +`contrib.drf.NamedEnumField` and `contrib.drf.EnumField` classes are provided as serializer fields for the rest framework. + +```python +from django.db import models +from django_enumfield import enum +from django_enumfield.contrib import drf +from rest_framework import serializers + + +class DeliveryStatus(enum.Enum): + NEW = 1 + IN_PROGRESS = 2 + COMPLETE = 3 + + +class Parcel(models.Model): + status = enum.EnumField(DeliveryStatus) + + +class ParcelSerializer(serializers.ModelSerializer): + name = drf.NamedEnumField(DeliveryStatus, default=DeliveryStatus.NEW) + value = drf.EnumField(DeliveryStatus, default=DeliveryStatus.COMPLETE) + + class Meta: + model = Parcel + fields = ('name', 'value') + +# The returned json will be +{ + 'named': 'NEW', + 'value': 3 +} +``` + + Local Development Environment -----------------------------