Skip to content

Instantly share code, notes, and snippets.

@joshourisman
Created August 14, 2012 21:46
Show Gist options
  • Save joshourisman/3353328 to your computer and use it in GitHub Desktop.
Save joshourisman/3353328 to your computer and use it in GitHub Desktop.
@classmethod
def import_events_to_django(klas, events):
num_created = 0
num_updated = 0
num_skipped = 0
events_dict = {int(event['id']): event for event in events}
existing_django_events = klas.objects.in_bulk(events_dict.keys())
for key in existing_django_events:
event = events_dict[key]
del(events_dict[key])
django_event = existing_django_events[key]
if not django_event.synced:
num_skipped += 1
continue
clean_event = klas.prepare_event(event)
for field in clean_event.keys():
setattr(django_event, field, clean_event[field])
django_event.save(synced=True)
num_updated += 1
events_list = map(lambda x: klas(**klas.prepare_event(x)),
events_dict.values())
klas.objects.bulk_create(events_list)
num_created = len(events_list)
return {
'created': num_created,
'updated': num_updated,
'skipped': num_skipped
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment