Файл загружается на локальном, но не на рабочем сервере в Django Rest framework?
У меня есть простой API, который загружает файл в системе. Он отлично работает на локальном сервере, но когда я развертываю тот же код на продакшене, он выдает мне ошибку сервера 500. Если я попробую с другим идентификатором, который не существует, он скажет, что объект не найден.
Мой код выглядит следующим образом.
def get_permissions(self):
"""
Instantiates and returns the list of permissions that this view requires.
"""
if self.request.query_params.get("download") == "file":
return []
return [permission() for permission in self.permission_classes]
def get(self, request, *args, **kwargs):
if request.query_params.get("download") == "file":
return self.download_file(request)
/....other codes........./
def download_file(self, request, *args, **kwargs):
instance = self.get_object()
file_handle = instance.file.path
document = open(file_handle, "rb")
response = HttpResponse(FileWrapper(document), content_type="")
response["Content-Disposition"] = (
'attachment; filename="%s"' % instance.file_name
)
return response
URL моей конечной точки выглядит так:
{{prod}}api/v1/example/notes/12/?download=file
Когда я вызываю этот api, ставя local вместо prod, он работает и я получаю загруженный файл, но не в production. Это как-то связано с тем, что файл закрывается до получения ответа?