Skip to content

seeder

django_spire.knowledge.entry.version.seeding.seeder

EntryVersionSeeder

Bases: DjangoModelSeeder

model_class = models.EntryVersion class-attribute instance-attribute

cache_name = 'entry_version_seeder' class-attribute instance-attribute

fields = {'id': 'exclude', 'entry_id': ('custom', 'fk_random', {'model_class': Entry}), 'author_id': ('custom', 'fk_random', {'model_class': AuthUser}), 'published_datetime': 'exclude', 'last_edit_datetime': ('custom', 'date_time_between', {'start_date': '-30d', 'end_date': 'now'}), 'is_deleted': ('static', False), 'is_active': ('static', True)} class-attribute instance-attribute

seed_database classmethod

Source code in django_spire/knowledge/entry/version/seeding/seeder.py
@classmethod
def seed_database(
        cls,
        count: int = 1,
        fields: dict | None = None
) -> list[models.EntryVersion]:
    entry_versions = super().seed_database(count=count, fields=fields)

    for entry_version in entry_versions:
        if entry_version.status == EntryVersionStatusChoices.PUBLISHED:
            entry_version.published_datetime = localtime() - timedelta(
                days=random.randint(0, 30), hours=random.randint(0, 23)
            )
    cls.model_class.objects.bulk_update(entry_versions, ['published_datetime'])

    cls._seed_blocks(entry_versions)

    return entry_versions