Skip to content

seeder

django_spire.contrib.seeding.model.django.seeder

TypeModel = TypeVar('TypeModel', bound=Model) module-attribute

DjangoModelSeeder

Bases: BaseModelSeeder

field_config_class = DjangoModelFieldsConfig class-attribute instance-attribute

model_class instance-attribute

prompt = None class-attribute instance-attribute

__init_subclass__ classmethod

Source code in django_spire/contrib/seeding/model/django/seeder.py
@classmethod
def __init_subclass__(cls, **kwargs):
    super().__init_subclass__(**kwargs)

    if cls.model_class is None:
        raise ValueError("Seeds must have a model class")

    if cls.fields is None:
        raise ValueError("Seeds must have fields")

field_names classmethod

Source code in django_spire/contrib/seeding/model/django/seeder.py
@classmethod
def field_names(cls) -> list[str]:
    # All foreign keys must be _id
    return [
        f.attname if isinstance(f, ForeignKey) else f.name
        for f in cls.model_class._meta.fields
    ]

seed_database classmethod

Source code in django_spire/contrib/seeding/model/django/seeder.py
@classmethod
def seed_database(
        cls,
        count=1,
        fields: dict | None = None
) -> list[TypeModel]:
    model_objects = cls.seed(count, fields)
    return cls.model_class.objects.bulk_create(model_objects)