2015-02-06 4 views
0
내가 만들고 (각 노동자가 자신의 iCal 파일이 있습니다) 다른 근로자의 iCal 파일이 포함되어 사용자의 zip 파일을 제공하기 위해 노력하고

web2py가 제공 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

당신은 for 루프의 외부에 단 하나의 Calendar 객체를 생성 한 다음에 이벤트를 추가 유지 감사합니다.

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

당신이 하나가 브라우저를 통해이 압축 파일을 다운로드 할 수 있습니다 방법에 대해 자세히 설명해 수 : 당신은 대신 for 루프 내에서 각 근로자에 ​​대한 새로운 Calendar 객체를 생성해야합니까? 이 질문에 대한 자세한 내용은 여기를 참조하십시오. https://stackoverflow.com/questions/44804747/web2py-downloading-zip-file-created-by-cstringio-text-strings-in-controller – NightFury13