web2py 服务 zip 文件

web2py serving zip file

我正在尝试为用户创建并提供一个 zip 文件,其中包含不同工作人员的 ical 文件(每个工作人员都有自己的 ical 文件)

问题是我在 zip 中得到了正确数量的 iCal 文件,但最后一个文件包含以前工作人员的所有数据。 (还有之前的等等)

这是我正在使用的代码

我做错了什么?

这是我的代码

cal = Calendar()
import zipfile, cStringIO
exported_chunks_zip = cStringIO.StringIO()
zipf = zipfile.ZipFile(exported_chunks_zip, "w", compression=zipfile.ZIP_DEFLATED )

for i, rec in enumerate(grouped):
    worker =  rec['rw_worker_nick'].encode('cp1250')
    for rr in rec["allData"]:
        startDate = rr['rw_date']
        startTime = rr['rw_time_start']
        endTime = rr['rw_time_end']
        evtstart = datetime.datetime.combine(startDate,startTime)
        evtend = datetime.datetime.combine(startDate,endTime)
        event = Event()

        event.add('summary', rec['rw_worker_nick'])
        event.add('dtstart', evtstart)
        event.add('dtend', evtend)
        cal.add_component(event)
        text = cal.to_ical()
    zipf.writestr(worker +'.ics', text)
    text = ''

有什么建议吗?

谢谢

您在 for 循环之外仅创建一个 Calendar 对象,然后继续向其附加事件。您应该为 for 循环中的每个工作人员创建一个新的 Calendar 对象:

for i, rec in enumerate(grouped):
    cal = Calendar()
    ...