import logging from django.db.models.signals import post_save from django.dispatch import receiver logger = logging.getLogger(__name__) def _get_tenant_model(): from django.apps import apps return apps.get_model("tenant", "Tenant") def _register(): Tenant = _get_tenant_model() @receiver(post_save, sender=Tenant) def on_tenant_created(sender, instance, created, **kwargs): if not created: return if instance.schema_name == "public": return from django_tenants.utils import schema_context from apps.permission.services import seed_default_roles from apps.setting.services import seed_default_lookups try: with schema_context(instance.schema_name): seed_default_roles(instance.schema_name) seed_default_lookups(instance.schema_name) except Exception: logger.exception( "Failed to seed defaults for tenant %s", instance.schema_name )