Skip to content

seeder

django_spire.knowledge.entry.version.seeding.seeder

EntryVersionSeeder

Bases: Seeder

Source code in django_spire/contrib/seeding/seeder.py
def __init__(self, count: int = 1, verbose: bool = True) -> None:
    self.seeds: list[Seed] = []
    self._model_object_ids: list[int | str] = []
    self._count: int = count
    self.verbose: bool = verbose

model_class = models.EntryVersion class-attribute instance-attribute

fields_seeds = {'id': Seeder.exclude(), 'entry_id': Seeder.exclude(), 'author_id': Seeder.model.random_foreign_key(AuthUser), 'status': Seeder.model.random_field_choice(EntryVersionStatusChoices), 'last_edit_datetime': Seeder.fake.date_time_between(start_date='-30d', end_date='now'), 'is_active': Seeder.static(True), 'is_deleted': Seeder.static(False)} class-attribute instance-attribute

seed_for_entries

Source code in django_spire/knowledge/entry/version/seeding/seeder.py
def seed_for_entries(self, entries: list[Entry]) -> list[models.EntryVersion]:
    self.seed(count=len(entries))

    entry_versions = self.to_model_instances()

    for entry, entry_version in zip(entries, entry_versions, strict=False):
        entry_version.entry = entry

    self.model_class.objects.bulk_create(entry_versions)
    self._model_object_ids = [entry_version.id for entry_version in entry_versions]

    self._set_published_datetimes()
    self._seed_blocks()

    return entry_versions