Skip to main content

Expandable serializers for Django REST Framework

Project description

Django Rest Framework Expandable

Description

Expandable serializers for Django REST Framework. Allow for selective object expansion through query parameters or serializer class kwargs.

Installation

pip install django-rest-framework-expandable

Usage

# apps/users/api.serializers.py
# (User serializer)
class UserSerializer(ExpandableHyperlinkedModelSerializer):
  class Meta:
    model = User
    fields = ("username", "id", ...)

# apps/users/api/fields.py
# (User expandable serializer field)
class UserRelatedField(ExpandableHyperlinkedRelatedField):
  queryset = User.objects.all()
  lookup_field = "id"
  view_name = "api:user-detail"
  expand_settings = {
    "comparison_fields": ["id"],
    "serializers": [
      {
        "paths": ["example.user"],
        "serializer": "apps.users.api.serializers.UserSerializer",
        "skipped": [],
      }
    ]
  }

# apps/example/api/serializers.py
# Example serializer (using nested expandable serializer fields)
from apps.users.api.fields import UserRelatedField
from apps.another.api.fields import AnotherRelatedField

class ExampleSerializer(ExpandableHyperlinkedModelSerializer):
  another_related_field = AnotherRelatedField()
  user = UserRelatedField()
  ...

Returns...

GET http://localhost:8000/api/examples/?expand=example.user
{
  id: 1,
  another_related_field: "http://localhost:8000/api/another/1",
  user: {
    id: 1,
    username: "Alex",
    ...
  }
}

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

Built Distribution

File details

Details for the file django-rest-framework-expandable-0.5.0.tar.gz.

File metadata

  • Download URL: django-rest-framework-expandable-0.5.0.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for django-rest-framework-expandable-0.5.0.tar.gz
Algorithm Hash digest
SHA256 89f572eeeaba42464bdc9bfa7f0748a491bba18427d0ed0bccd7b424db3490b6
MD5 ef5697e6096f0fdd225cb6ae10929cfe
BLAKE2b-256 de4a94cfc210665b0f836825861b56a5bd31ed609709e86851427b64764f431d

See more details on using hashes here.

File details

Details for the file django_rest_framework_expandable-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: django_rest_framework_expandable-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for django_rest_framework_expandable-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd3dcb5a4990c2151d6cefc86f1fb29780dd78980e75634d5562b4bef04a85d1
MD5 ad643d4b44f23f17cde1183cc4ee2473
BLAKE2b-256 9428a335a1bbf7d69cc1988977410686b1887d58a408155233579667ee519fa4

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