File download and upload support for Django REST framework
REST framework files
File download and upload support for Django REST framework.
REST framework files allows you to download a file in the format used to render the response and also allows creation of model instances by uploading a file containing the model fields.
Python (2.7, 3.5, 3.6)
Django REST framework (3.4, 3.5, 3.6, 3.7, 3.8)
Install using pip:
pip install djangorestframework-files
from django.db import models class ABC(models.Model): name = models.CharField(max_length=255)
from rest_framework import serializers from .models import ABC class ABCSerializer(serializers.ModelSerializer): class Meta: model = ABC fields = '__all__'
from rest_framework.parsers import JSONParser, MultiPartParser from rest_framework_files.viewsets import ImportExportModelViewSet from .models import ABC from .serializers import ABCSerializer class ABCViewSet(ImportExportModelViewSet): queryset = ABC.objects.all() serializer_class = ABCSerializer # if filename is not provided, the view name will be used as the filename filename = 'ABC' # renderer classes used to render your content. will determine the file type of the download renderer_classes = (JSONParser, ) parser_classes = (MultiPartParser, ) # parser classes used to parse the content of the uploaded file file_content_parser_classes = (JSONParser, )
Some third party packages that offer media type support:
from rest_framework import routers from .views import ABCViewSet router = routers.ImportExportRouter() router.register(r'abc', ABCViewSet) urlpatterns = router.urls
To download a json file you can go to the url /abc/?format=json. The format query parameter specifies the media type you want your response represented in. To download an xml file, your url would be /abc/?format=xml. For this to work, make sure you have the respective renderers to render your response.
To create model instances from a file, upload a file to the url /abc/. Make sure the content of the file can be parsed by the parsers specified in the file_content_parser_classes or else it will return a HTTP_415_UNSUPPORTED_MEDIA_TYPE error.
For sample file examples you can upload, check the assets folder
For more examples on how to use the viewsets or generic views, check the test application
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for djangorestframework-files-1.1.0.tar.gz