web2py提供zip文件

时间:2015-02-06 19:14:10

标签: zip web2py icalendar

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

问题是我在我的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 = ''

有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:1)

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

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