Last updated:
0 purchases
djangorestframeworkfiles 1.1.0
REST framework files
File download and upload support for Django REST framework.
Overview
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.
Requirements
Python (2.7, 3.5, 3.6)
Django REST framework (3.4, 3.5, 3.6, 3.7, 3.8)
Installation
Install using pip:
pip install djangorestframework-files
Example
models.py
from django.db import models
class ABC(models.Model):
name = models.CharField(max_length=255)
serializers.py
from rest_framework import serializers
from .models import ABC
class ABCSerializer(serializers.ModelSerializer):
class Meta:
model = ABC
fields = '__all__'
views.py
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:
Parsers
Renderers
urls.py
from rest_framework import routers
from .views import ABCViewSet
router = routers.ImportExportRouter()
router.register(r'abc', ABCViewSet)
urlpatterns = router.urls
Downloading
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.
Uploading
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
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.