from django.contrib.contenttypes.models import ContentType _VERKNUEPFBARE_MODELLE = [ ('lose', 'Anforderung'), ('lose', 'Los'), ('aufgaben', 'Bieterfrage'), ('dokumente', 'Dokument'), ('preise', 'Preispunkt'), ] def verknuepfbare_typen(): """Gibt eine geordnete Liste (ContentType, label) der verknüpfbaren Typen zurück.""" result = [] for app_label, model_name in _VERKNUEPFBARE_MODELLE: try: ct = ContentType.objects.get(app_label=app_label, model=model_name.lower()) result.append((ct, f'{ct.app_label} / {model_name}')) except ContentType.DoesNotExist: pass return result def ziel_choices(): """Gibt (content_type_id, label)-Tupel für ein ChoiceField zurück.""" return [(ct.pk, label) for ct, label in verknuepfbare_typen()]