Skip to content

foreign_key_selection_prompt

django_spire.contrib.seeding.intelligence.prompts.foreign_key_selection_prompt

foreign_key_selection_prompt

Source code in django_spire/contrib/seeding/intelligence/prompts/foreign_key_selection_prompt.py
def foreign_key_selection_prompt(
    model_class: Type[Model],
    related_model_class: Type[Model]
) -> Prompt:
    model_name = model_class._meta.verbose_name.title()
    related_model_name = related_model_class._meta.verbose_name.title()
    related_model_plural = related_model_class._meta.verbose_name_plural.title()

    related_model_objects = related_model_class.objects.values_list('id', flat=True)

    return (
        Prompt()
        .heading(f'{related_model_name} Selection')
        .text(f'Each `{model_name}` must be associated with an existing `{related_model_name}`.')
        .text(f'The following "{related_model_plural}" are available to assign:')
        .list(related_model_objects)
    )