Skip to content

model_seed

django_spire.contrib.seeding.field.seed.model_seed

BaseForeignKeyModelFieldSeed

Bases: BaseFieldSeed, ABC

Source code in django_spire/contrib/seeding/field/seed/model_seed.py
def __init__(self, queryset: QuerySet) -> None:
    self.queryset = queryset
    self.queryset_key = str(queryset.query)

queryset = queryset instance-attribute

queryset_key = str(queryset.query) instance-attribute

model_foreign_keys

Source code in django_spire/contrib/seeding/field/seed/model_seed.py
def model_foreign_keys(self, seed_index: int) -> list:
    if self.__class__._model_foreign_keys.get(self.queryset_key) is None or seed_index == 0:
        self.__class__._model_foreign_keys[self.queryset_key] = list(
            self.queryset.values_list('id', flat=True)
        )

    return self.__class__._model_foreign_keys[self.queryset_key]

OrderedForeignKeyModelFieldSeed

Bases: BaseForeignKeyModelFieldSeed

Source code in django_spire/contrib/seeding/field/seed/model_seed.py
def __init__(self, queryset: QuerySet, wrap: bool = False) -> None:
    super().__init__(queryset=queryset)
    self.wrap = wrap

wrap = wrap instance-attribute

generate_value

Source code in django_spire/contrib/seeding/field/seed/model_seed.py
def generate_value(self, seed_index: int) -> Any:
    foreign_keys = self.model_foreign_keys(seed_index)
    index = resolve_ordered_index(seed_index, len(foreign_keys), self.wrap, 'foreign keys')
    return foreign_keys[index]

RandomForeignKeyModelFieldSeed

Bases: BaseForeignKeyModelFieldSeed

Source code in django_spire/contrib/seeding/field/seed/model_seed.py
def __init__(self, queryset: QuerySet) -> None:
    self.queryset = queryset
    self.queryset_key = str(queryset.query)

generate_value

Source code in django_spire/contrib/seeding/field/seed/model_seed.py
def generate_value(self, seed_index: int) -> Any:
    return random.choice(self.model_foreign_keys(seed_index))