Skip to content

Instantly share code, notes, and snippets.

@jnoortheen
Created March 5, 2020 11:49
Show Gist options
  • Save jnoortheen/08625debc82e33d06f05178dcf948042 to your computer and use it in GitHub Desktop.
Save jnoortheen/08625debc82e33d06f05178dcf948042 to your computer and use it in GitHub Desktop.
django bulk inserter
class ModelBulkCreator:
def __init__(self, cap=100):
self.Model: Model = None
self.cap = cap
self._objects = []
def add(self, obj):
if not self.Model:
self.Model = type(obj)
self._objects.append(obj)
if len(self._objects) >= self.cap:
self.create_all()
def create_all(self):
if self.Model:
log.info(f"Bulk inserting objects: Num - {len(self._objects)}")
self.Model.objects.bulk_create(self._objects)
self._objects.clear()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment