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
Close
Hashes for django-rest-framework-expandable-0.5.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89f572eeeaba42464bdc9bfa7f0748a491bba18427d0ed0bccd7b424db3490b6 |
|
MD5 | ef5697e6096f0fdd225cb6ae10929cfe |
|
BLAKE2b-256 | de4a94cfc210665b0f836825861b56a5bd31ed609709e86851427b64764f431d |
Close
Hashes for django_rest_framework_expandable-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd3dcb5a4990c2151d6cefc86f1fb29780dd78980e75634d5562b4bef04a85d1 |
|
MD5 | ad643d4b44f23f17cde1183cc4ee2473 |
|
BLAKE2b-256 | 9428a335a1bbf7d69cc1988977410686b1887d58a408155233579667ee519fa4 |