Skip to main content

More Cool Django Rest Framework Stuff

Project description

:warning: Warning NonPaginatedXLSXRenderer does not work with newer versions of drf-renderer-xlsx. Please set your version of drf-renderer-xlsx to 0.3.8.

django-rest-framework-more

More Cool Django Rest Framework Stuff

install

pip3 install djangorestframework-more or pipenv install djangorestframework-more

features

NonPaginatedCSVRenderer and NonPaginatedXLSXRenderer

In case you want a CSV or XLSX (Excel) renderer that doesn't respect pagination:

# in settings.py
REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES': [
        'rest_framework.renderers.JSONRenderer',
        'rest_framework.renderers.BrowsableAPIRenderer',
        'rest_framework_more.renderers.NonPaginatedCSVRenderer',
        'rest_framework_more.renderers.NonPaginatedXLSXRenderer'
    ]
}

If you'd like to learn more about using renderers in Django Rest Framework, see https://www.django-rest-framework.org/api-guide/renderers/#setting-the-renderers

Creater Model Serializer Class

# in serializers.py
from app.models import Car
from rest_framework_more.serializers import create_model_serializer_class

CarSerializer = create_model_serializer_class(model=Car)

Create Model Filter Form

# forms.py
from app.models import Car
from rest_framework_more.filters import create_model_filter_form

CarFilterForm = create_model_filter_form(model=Car)

Create Model Filter Set Class

# forms.py
from app.models import Car
from rest_framework_more.filters import create_model_filterset_class

CarFilterSet = create_model_filterset_class(model=Car)

Create Model ViewSet Class

# views.py
from app.models import Car
from rest_framework_more.viewsets import create_model_viewset_class

CarViewSet = create_model_viewset_class(model=Car)

FileNameMixin

The FileNameMixin automatically generates a more descriptive filename for CSV and Excel exports than the default "download". It first tries to convert the url path into a filename. If that doesn't succeed it tries to pull the filename from the queryset's model.

# views.py
from rest_framework_more.mixins import FileNameMixin

class CarViewSet(FileNameMixin, ReadOnlyModelViewSet):
...    

# if the CarViewSet is called from the url /api/cars it will generate a download filename of api_cars.csv

contact

If you have any issues, feel free to post an issue at https://github.com/DanielJDufour/django-rest-framework-more/issues or email the package author at daniel.j.dufour@gmail.com

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

djangorestframework-more-1.5.0.tar.gz (10.8 kB view details)

Uploaded Source

File details

Details for the file djangorestframework-more-1.5.0.tar.gz.

File metadata

  • Download URL: djangorestframework-more-1.5.0.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/26.0 requests/2.24.0 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.49.0 importlib-metadata/4.0.1 keyring/21.4.0 rfc3986/1.4.0 colorama/0.4.3 CPython/3.8.5

File hashes

Hashes for djangorestframework-more-1.5.0.tar.gz
Algorithm Hash digest
SHA256 6ff41e8a8917541386fc0edd8883832bf034642fdf3b8990b039421ed8e7337f
MD5 75ba4f8865f36724603ed071cba21e6e
BLAKE2b-256 13820900be4e8e91334456c2ffb86017fd7c40bc478adfca4af383fc1b61002f

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