Как загружать файлы в django backend?
Я пытаюсь создать функцию загрузки файла на своем сайте. Однако я постоянно получаю ошибку
The submitted data was not a file. Check the encoding type on the form
. Я пытался создать функцию post
в views.py
. Означает ли это, что любой файл, который я загрузил, не считается файлом?
models.py
class ClinicVisit(models.Model):
upload_attachment = models.FileField(null=True , blank=True, upload_to='uploads/')
views.py
class ClinicVisitList(generics.ListCreateAPIView):
serializer_class = ClinicVisitSerializer
filter_backends = [DjangoFilterBackend, filters.OrderingFilter]
filterset_class = ClinicVisitFilter
permission_classes = [permissions.IsAuthenticated,]
pagination_class = LargeResultsSetPagination
ordering = ['-created_at']
parser_class = (FileUploadParser,)
def get_queryset(self):
return ClinicVisit.objects.based_on_access_level(self.request.user)
def post(self, request, *args, **kwargs):
file_serializer = ClinicVisitSerializer(data=request.data)
print(request.data)
if file_serializer.is_valid():
file_serializer.save()
return response.Response(file_serializer.data, status=status.HTTP_200_OK)
else:
return response.Response(file_serializer.errors,status=status.HTTP_400_BAD_REQUEST)
serializers.py
class ClinicVisitSerializer(serializers.ModelSerializer):
upload_attachment = serializers.FileField()
class Meta:
model = ClinicVisit
exclude = clinicvisit_exclude
extra_kwargs = {
"staff_relationship": {"required": True},
"visit_type": {"required": True},
"visit_status": {"required": True},
}