django_seed/seeder.py
def execute(self, using, inserted_entities):
        """
        Execute the stages entities to insert
        :param using:
        :param inserted_entities:
        """

        def format_field(format, inserted_entities):
            if callable(format):
                return format(inserted_entities)
            return format

        def turn_off_auto_add(model):
            for field in model._meta.fields:
                if getattr(field, 'auto_now', False):
                    field.auto_now = False
                if getattr(field, 'auto_now_add', False):
                    field.auto_now_add = False

        manager = self.model.objects.db_manager(using=using)
        turn_off_auto_add(manager.model)

        faker_data = {
            field: format_field(field_format, inserted_entities)
            for field, field_format in self.field_formatters.items()
        }

        # max length restriction check
        for data_field in faker_data:
            field = self.model._meta.get_field(data_field)

            if field.max_length and isinstance(faker_data[data_field], str):
                faker_data[data_field] = faker_data[data_field][:field.max_length]

        obj = manager.create(**faker_data)

        return obj.pk
def execute(self, using, inserted_entities):
        """
        Execute the stages entities to insert
        :param using:
        :param inserted_entities:
        """

        def format_field(format, inserted_entities):
            if callable(format):
                return format(inserted_entities)
            return format

        def turn_off_auto_add(model):
            for field in model._meta.fields:
                if getattr(field, 'auto_now', False):
                    field.auto_now = False
                if getattr(field, 'auto_now_add', False):
                    field.auto_now_add = False

        manager = self.model.objects.db_manager(using=using)
        turn_off_auto_add(manager.model)

        faker_data = {
            field: format_field(field_format, inserted_entities)
            for field, field_format in self.field_formatters.items()
        }

        # max length restriction check
        for data_field in faker_data:
            field = self.model._meta.get_field(data_field)

            if field.max_length and isinstance(faker_data[data_field], str):
                faker_data[data_field] = faker_data[data_field][:field.max_length]

        obj = manager.create(**faker_data)

        return obj.pk
def execute ( self , using , inserted_entities ) : def format_field ( format , inserted_entities ) : if callable ( format ) : return format ( inserted_entities ) return format def turn_off_auto_add ( model ) : for field in model . _meta . fields : if getattr ( field , 'auto_now' , False ) : field . auto_now = False if getattr ( field , 'auto_now_add' , False ) : field . auto_now_add = False manager = self . model . objects . db_manager ( using = using ) turn_off_auto_add ( manager . model ) faker_data = { field : format_field ( field_format , inserted_entities ) for field , field_format in self . field_formatters . items ( ) } # max length restriction check for data_field in faker_data : field = self . model . _meta . get_field ( data_field ) if field . max_length and isinstance ( faker_data [ data_field ] , str ) : faker_data [ data_field ] = faker_data [ data_field ] [ : field . max_length ] obj = manager . create ( * * faker_data ) return obj . pk
Execute the stages entities to insert
        :param using:
        :param inserted_entities:
Execute the stages entities to insert : param using : : param inserted_entities :