Сохранить zip в FileField django

У меня есть представление, которое создает два csv, и моя цель - застегнуть их и добавить в model.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")
Вернуться на верх