Extensions of Django Rest framework
Project description
Django REST framework Ext
Some extensions of Django REST framework.
DynamicSizePageNumberPagination
Support using limit
parameter to specify the page size for querying.
Return all data when the page
parameter is not specified.
Usage:
REST_FRAMEWORK = {
...
'DEFAULT_PAGINATION_CLASS': 'djangorestframework_ext.pagination.DynamicSizePageNumberPagination',
...
}
Request:
GET https://api.example.org/accounts/?page=4&limit=100
DjangoModelPermissions
Add view
permission control.
Usage:
from djangorestframework_ext.permissions import DjangoModelPermissions
IsCurrentUser
Determine whether it is the current login user.
Usage:
from djangorestframework_ext.permissions import IsCurrentUser
RecursiveSerializer
Usage:
from rest_framework import serializers
from djangorestframework_ext.serializers import RecursiveSerializer
from django.db import models
class Department(models.Model):
name = models.CharField('Name', max_length=100)
parent = models.ForeignKey('self', related_name='children', verbose_name='Parent')
class DepartmentTreeListSerializer(serializers.ModelSerializer):
children = RecursiveSerializer(many=True)
class Meta:
model = Department
fields = '__all__'
Response:
[{
"id": 1,
"children": [{
"id": 2,
"children": [{
"id": 3,
"children": [{
"id": 4,
"children": [],
"name": "aaa",
"parent": 3
}],
"name": "ddd",
"parent": 2
}, {
"id": 5,
"children": [{
"id": 6,
"children": [],
"name": "eee",
"parent": 7
}],
"name": "xxx",
"parent": 2
}],
"name": "yyy",
"parent": 1
}],
"name": "zzz",
"parent": null
}]
ExportModelSerializer
Use verbose name or label replace field name.
Usage:
from djangorestframework_ext.serializers import ExportModelSerializer
from django.db import models
class Department(models.Model):
name = models.CharField('Name', max_length=100)
creator = models.ForeignKey(User, null=False, verbose_name='Creator')
class DepartmentExportSerializer(ExportModelSerializer):
creator = serializers.StringRelatedField(label='Creator', read_only=True)
class Meta:
model = Department
fields = ['name', 'creator']
Response:
[{
"Name": "aaa",
"Creator": "John"
}]
DEFAULT_QUERY_PARAMS
Default query params: page_query_param
, page_size_query_param
and ORDERING_PARAM
.
exception_handler
Some exception handlers.
Usage:
REST_FRAMEWORK = {
...
'EXCEPTION_HANDLER': 'djangorestframework_ext.views.exception_handler',
...
}
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 djangorestframework-ext-0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b61898ea253542eb7015a187fed0517c259af4e7596c5ede6942b57e360367f4 |
|
MD5 | e6d83cd7d74ef20de658e3cc9329b7ae |
|
BLAKE2b-256 | a5a5e897df1f01ee7d216a80f8bbcea763831681fa1746de93b6b161dde98bc4 |
Close
Hashes for djangorestframework_ext-0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3580decae5ad89573864d2064a482ff5634f3ce80f4a6f0943749d7ebf6c54b3 |
|
MD5 | 1590be7aaeb07e4624bb8b17a868fac2 |
|
BLAKE2b-256 | 4f38440bdb2e8373090432316504081d12fe6b9d8257505706637cc4457638cc |