Ich versuche, alle Ereignisse eines Kalenders mit der Google API für Python zu löschen. Wenn ich die Ereignisse einzeln löschen, funktioniert dies gut, aber es ist sehr lang und nicht unoptimiert, so dass ich versuche, die gleiche Sache mit ExecuteBatch zu tun, die ich für das Einfügen einer Menge von Einträgen in den Kalender verwenden (und dies funktioniert gut vor dem Einfügen).
def DeleteAllEntryOfCalendar(calendar_client, name_calendar):
#Request_feed for doing the delete
request_feed = gdata.calendar.CalendarEventFeed()
#Get the Uri of the cal we've to delete all entries
uri = GetUri(calendar_client, name_calendar)
feed = calendar_client.GetAllCalendarsFeed()
for a_cal in feed.entry:
if a_cal.title.text == name_calendar:
calendar = a_cal
#For each entry in the cal, do a delete request entry in request_feed
query = gdata.calendar.client.CalendarEventQuery()
query.max_results = 1000
feed = calendar_client.GetCalendarEventFeed(uri=uri, q=query)
for an_entry in feed.entry:
an_entry.batch_id = gdata.BatchId(text='delete-request')
request_feed.AddDelete(entry=an_entry)
entry = ''
# submit the batch request to the server
response_feed = calendar_client.ExecuteBatch(request_feed, uri+u'/batch')
Und ich bekam die Fehlermeldung :
Traceback (most recent call last):
File "c.py", line 253, in <module>
DeleteAllEntryOfCalendar(client, name_calendar)
File "c.py", line 187, in DeleteAllEntryOfCalendar
response_feed = calendar_client.ExecuteBatch(request_feed, uri+u'/batch')
File "/usr/local/lib/python2.6/dist-packages/gdata/calendar/client.py", line 432, in execute_batch
return self.Post(batch_feed, url, desired_class=desired_class)
File "/usr/local/lib/python2.6/dist-packages/gdata/client.py", line 681, in post
entry.to_string(get_xml_version(self.api_version)),
AttributeError: 'CalendarEventFeed' object has no attribute 'to_string'
Ich wiederhole, dass, wenn ich das gleiche tun, um Ereignisse einzufügen dies funktioniert gut. Ich habe eine Menge suchen und versucht, eine Menge von Möglichkeiten und ich kann nicht tun es funktionieren. Wenn Sie eine Idee haben...