diff --git a/membershipworks/tasks/scrape.py b/membershipworks/tasks/scrape.py index 065b59f..7082644 100644 --- a/membershipworks/tasks/scrape.py +++ b/membershipworks/tasks/scrape.py @@ -115,12 +115,23 @@ def scrape_events(): category.clean_fields() category.save() - for event_data in data["evt"]: - logger.debug(event_data) - event = Event.from_api_dict(event_data) - event.clean_fields() - event.save() + events = Event.objects.bulk_create( + [Event.from_api_dict(event_data) for event_data in data["evt"]], + update_conflicts=True, + update_fields=[ + field.attname + for field in Event._meta.get_fields() + if not ( + field.auto_created + or field.many_to_many + or not field.concrete + or field.generated + or field.primary_key + ) + ], + ) + for event in events: try: event_ext = EventExt.objects.get(event_ptr=event) except EventExt.DoesNotExist: