Я запускаю приложение Django, где я могу загружать файлы. Теперь я хочу скачать файлы с помощью запросов. Я пытался создать представление о том, где файл загружается, чтобы я мог сделать звонок с запросами. Но это не совсем работает
My model:
class FileCollection(models.Model):
name = models.CharField(max_length=120, null=True, blank=True)
store_file = models.FileField(storage=PrivateMediaStorage(), null=True, blank=True)
creation_date = models.DateTimeField(null=True, blank=True)
My views
def fileview(request, *args, **kwargs):
file = FileCollection.objects.first()
file_path = file.store_file
print(file_path)
FilePointer = open(file_path, "r")
response = HttpResponse(FilePointer, content_type='application/msexcel')
response['Content-Disposition'] = 'attachment; filename=NameOfFile'
return response
Это говорит мне, что TypeError: expected str, bytes or os.PathLike object, not FieldFile
Если я передам URL, указанный в apiview / admin, я получу: FileNotFoundError: [Errno 2] No such file or directory
Также пробовал:
def fileview(request):
path = FileCollection.objects.first()
obj = path.store_file
o = str(obj)
file_path = os.path.join(settings.MEDIA_ROOT, o)
print(file_path)
if os.path.exists(file_path):
with open(file_path, 'rb') as fh:
response = HttpResponse(fh.read(),
content_type="application/vnd.ms-excel")
response[
'Content-Disposition'] = 'inline; filename=' + os.path.basename(
file_path)
return response
но это дает мне ValueError: The view file_storage_api.api.v1.views.fileview didn't return an HttpResponse object. It returned None instead.
Это правильный путь?
Я очень благодаренза помощь или намеки. Большое спасибо