import error ready

ImportError: cannot import name ‘ready_event’ from ‘django.core.signals’

from django.apps import AppConfig
from django.core.signals import ready_event # Import the correct signal

class TexteditorConfig(AppConfig):
default_auto_field = ‘django.db.models.BigAutoField’
name = ‘texteditor’

def ready(self):
    def setup_ldap_sync():
        from django_auth_ldap.backend import populate_user
        from django.contrib.auth.models import Group

        def sync_ldap_groups(sender, user, ldap_user, **kwargs):
            user.groups.clear()

            ldap_groups = ldap_user.attrs.get('memberOf', [])

            group_map = {
                'ProjAIInternGroup': 'interns',
                'ProjAIEditorGroup': 'subeditors',
                'ProjAIAdminGroup': 'admin',
            }

            for ldap_group_name, django_group_name in group_map.items():
                if any(f"CN={ldap_group_name}" in g for g in ldap_groups):
                    group, _ = Group.objects.get_or_create(name=django_group_name)
                    user.groups.add(group)

        populate_user.connect(sync_ldap_groups)

    # Hook into Django's 'ready_event', which ensures all apps/models are fully loaded
    ready_event.connect(lambda **kwargs: setup_ldap_sync())

tried many ways. nothing seems to be helping. gunicorn continues to fail. triggering gunicorn using systemd.

What is making you think that there is a core Django signal named ready_event?

I looked over older versions and then found ready_event. Ya.. i guess ive tried this after seaching over internet.

ive changed the code like this:

from django.apps import AppConfig

class TexteditorConfig(AppConfig):
default_auto_field = ‘django.db.models.BigAutoField’
name = ‘texteditor’

def ready(self):
    from django_auth_ldap.backend import populate_user
    from django.contrib.auth.models import Group

    def sync_ldap_groups(sender, user, ldap_user, **kwargs):
        user.groups.clear()

        ldap_groups = ldap_user.attrs.get('memberOf', [])

        group_map = {
            'ProjAIInternGroup': 'interns',
            'ProjAIEditorGroup': 'subeditors',
            'ProjAIAdminGroup': 'admin',
        }

        for ldap_group_name, django_group_name in group_map.items():
            if any(f"CN={ldap_group_name}" in g for g in ldap_groups):
                group, _ = Group.objects.get_or_create(name=django_group_name)
                user.groups.add(group)

    # Connect once when the app is ready
    populate_user.connect(sync_ldap_groups)