Skip to main content

A serializer that handles field configuration with multiple actions from ViewSets.

Project description

Action Serializer

TravisCI PyPI Coveralls Code Style

Source: https://github.com/gregschmit/drf-action-serializer

PyPI: https://pypi.org/project/drf-action-serializer/

Action Serializer is a Django Rest Framework extension package that provides a Serializer that implements per-action field configuration for use in your drf-powered API.

The Problem: When building APIs, often you want different serializers for different actions, such as less fields on a list view vs a detail view. Normally you would have to build multiple Serializers to support this.

The Solution: This app provides the ModelActionSerializer which allows you to easily configure per-action serialization.

How to Use

$ pip install drf-action-serializer

In your serializer, inherit from action_serializer.ModelActionSerializer.

In your serializer, you can add an action_fields dictionary to the Meta class and use fields, exclude, and extra_kwargs under the action key. The example in this project shows how to render a smaller list of attributes for a list view compared to the detail view.

from django.contrib.auth.models import Group
from action_serializer import ModelActionSerializer


class GroupActionSerializer(ModelActionSerializer):
    """
    An example serializer for the Django ``Group`` model, where the ``list`` action
    causes less fields to be serialized than normal.
    """

    class Meta:
        model = Group
        fields = ("id", "name", "permissions")
        action_fields = {"list": {"fields": ("id", "name")}}

In your ViewSet, just set the serializer like normal:

from rest_framework.viewsets import ModelViewSet


class GroupViewSet(ModelViewSet):
    """
    An example viewset for the Django ``Group`` model.
    """

    serializer_class = GroupActionSerializer
    queryset = Group.objects.all()

Tests

$ python manage.py test

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drf-action-serializer-1.0.5.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

drf_action_serializer-1.0.5-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file drf-action-serializer-1.0.5.tar.gz.

File metadata

  • Download URL: drf-action-serializer-1.0.5.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for drf-action-serializer-1.0.5.tar.gz
Algorithm Hash digest
SHA256 a51944824eae98bfb02005014db31aeaf33c943fc4ab92d11c8c01203eb582a9
MD5 e0945680fdd2355b9234cc09f1263508
BLAKE2b-256 91b54f52ee51a3f012cd5614d4979278cd20996b34bb67bf84f36479f54305c6

See more details on using hashes here.

File details

Details for the file drf_action_serializer-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: drf_action_serializer-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for drf_action_serializer-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 961c66008a01705eaaa9a4bf5f04405f16346c4886f6ec6ecf3bce7f1247c856
MD5 2c2974f1a3adaa8b9d8c8b61a587e120
BLAKE2b-256 0eb3bcd8c9ea9f3097e66f0ec1d28c5ac603b2623e49512903ddb6b6445336bb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page