将zip保存到FileField django



我有一个创建两个csv的视图,我的目标是压缩它们并添加到模型中。FileField

zip = zipfile.ZipFile('myzip.zip','w')
zip.writestr('file1.csv', file1.getvalue())
zip.writestr('file2.csv', file2.getvalue())

我试过这个,zip是上传的,但当我下载它时,我有错误'存档已损坏或未知格式'

Mymodel.objects.create(zip = File(open('myzip.zip','rb'))

这个例子刚刚为我工作,

from django.core.files import File
from django.http import HttpResponse
from .models import ZipFile
import zipfile
from django.views import View

class ZipWriteView(View):
def get(self, request, *args, **kwargs):
with zipfile.ZipFile("myzip.zip", "w") as zip_obj:
zip_obj.write("polls/views.py")  # add file 1
zip_obj.write("polls/admin.py")  # add file 2
with open(zip_obj.filename, "rb") as f:
ZipFile.objects.create(file=File(f))
return HttpResponse("Done")

相关内容

  • 没有找到相关文章

最新更新