Support of django-candv-choices for django-rest-framework.
Table of contents
Install from PyPI:
$ pip install django-rf-candv-choices
For example, you have some model which uses candv_x.django.choices.ChoiceField to store one of allowed values. This might be a User model, which has user_role field, where values for user_role are defined by USER_ROLES constants container.
Use candv_x.rest_framework.choices.ChoiceField for user_role serialization:
from rest_framework import serializers from candv_x.rest_framework.choices import ChoiceField from .constants import USER_ROLES from .models import User class UserSerializer(serializers.ModelSerializer): user_role = ChoiceField(USER_ROLES) class Meta: model = User fields = ('id', 'name', 'user_role', )
Exposing choices to the outer world
If you need to expose list of possible choices for your field, then you can use a ChoicesList base view to get a class-based view:
from candv_x.rest_framework.choices import ChoicesList from .constants import USER_ROLES class UserRoleList(ChoicesList): choices = USER_ROLES
The only thing you need to do is to define choices attribute.
There is a faster way also: you can use a coalitions_list view factory to get a function-based view:
from candv_x.rest_framework.choices import simple_choices_list from .constants import USER_ROLES user_role_list = simple_choices_list(USER_ROLES)
You can click a version name to see a diff with the previous one.
1.0.0 (Aug 1, 2015)