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
Release history Release notifications | RSS feed
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89f572eeeaba42464bdc9bfa7f0748a491bba18427d0ed0bccd7b424db3490b6 |
|
MD5 | ef5697e6096f0fdd225cb6ae10929cfe |
|
BLAKE2b-256 | de4a94cfc210665b0f836825861b56a5bd31ed609709e86851427b64764f431d |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd3dcb5a4990c2151d6cefc86f1fb29780dd78980e75634d5562b4bef04a85d1 |
|
MD5 | ad643d4b44f23f17cde1183cc4ee2473 |
|
BLAKE2b-256 | 9428a335a1bbf7d69cc1988977410686b1887d58a408155233579667ee519fa4 |