Django-REST-framework serializer fields for compound types. Django-REST-framework provides the ability to deal with multiple objects using the many=True option on serializers. That allows for lists of objects and for fields to be lists of objects.
This package expands on that and provides fields allowing:
- Lists of simple (non-object) types, described by other serializer fields.
- Fields that allow values to be a list or individual item of some type.
- Dictionaries of simple and object types.
- Partial dictionaries which include keys specified in a list.
A quick example:
from drf_compound_fields.fields import DictField from drf_compound_fields.fields import ListField from drf_compound_fields.fields import ListOrItemField from drf_compound_fields.fields import ListField from rest_framework import serializers class EmailContact(serializers.Serializer): email = serializers.EmailField() verified = serializers.BooleanField() class UserProfile(serializers.Serializer): username = serializers.CharField() email_contacts = EmailContact(many=True) # List of objects: possible with REST-framework alone # This is the new stuff: skills = ListField(serializers.CharField()) # E.g., ["javascript", "python", "ruby"] name = ListOrItemField(serializers.CharField()) # E.g., "Prince" or ["John", "Smith"] bookmarks = DictField(serializers.URLField()) # E.g., {"./": "http://slashdot.org"} measurements = PartialDictField(included_keys=['height', 'weight'], serializers.IntegerField())
See the :doc:`usage <usage>` for more information.
- Free software: BSD license
- Documentation
- Source code
- Issue tracker
- CI server
- IRC: no channel but see AUTHORS for individual nicks on freenode.
- Mailing list: None yet, but please log an issue if you want to have discussions about this package.