Categories
Python Answers

How to add File Upload with Python Django Rest Framework?

Spread the love

To add File Upload with Python Django Rest Framework, we can add a FileField into our model.

For instance, we write

class ExperimentViewSet(ModelViewSet):
    queryset = Experiment.objects.all()
    serializer_class = ExperimentSerializer

    def pre_save(self, obj):
        obj.samplesheet = self.request.FILES.get('file')

class Experiment(Model):
    notes = TextField(blank=True)
    samplesheet = FileField(blank=True, default='')
    user = ForeignKey(User, related_name='experiments')

class ExperimentSerializer(ModelSerializer):
    class Meta:
        model = Experiment
        fields = ('id', 'notes', 'samplesheet', 'user')

to create the ExperimentViewSet in Django that gets the file from self.request.FILES.get('file') in pre_save.

And then we create the Experiment model with the FileField that we use with ExperimentViewSet.

And then we add the ExperimentSerializer that has the samplesheet in the fields.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *