Делаю в своем приложении отдачу всех файлов из папки одним архивом. Все круто, архив создается, но почему-то при скачивании у него нет имени, а внутри находится полный путь до файлов из пустых директорий. Как мне создать файл архива в папке media/archs/ и как назначить архиву имя при скачивании?
views.py
def DownloadAllFilesView(request, objId):
if request.method == 'POST':
project_folder = Doc.objects.filter(idProj=Project.objects.get(id=objId)).first().idProj.name.replace(' ', '_')
path = settings.MEDIA_ROOT + '/project_%s/' % project_folder
z_name = '%s.zip' % Project.objects.get(id=objId).name.replace(' ', '_')
z = zipfile.ZipFile(z_name, 'w') # Создание нового архива
for file in os.listdir(path):
z.write(os.path.join(path, file)) # Создание относительных путей и запись файлов в архив
z.close()
return FileResponse(open(z.filename, 'rb'))