Не удается понять поведение сигнала об изменении группы пользователей в django

У меня есть функция для получения сигнала, когда пользователи меняют свою группу.

@receiver(signal=m2m_changed, sender=User.groups.through)
def save_profile(instance, action, reverse, model, pk_set, using, *args, **kwargs):
    print(model, instance)

Когда я изменяю группу пользователя с именем "test" с помощью интерфейса суперадмина, он выдает <class 'django.contrib.auth.models.Group'> test. Но когда я делаю это с помощью следующего кода,

 group = Group.objects.get(name='Customer')
 group.user_set.add(user)
 user.save()

выводит <class 'django.contrib.auth.models.User'> Customer.

Из-за вышеуказанной проблемы я не могу использовать

 if instance.groups.filter(name='Customer').exists():
    #Do something

внутри функции save_profile. Когда я меняю группы, используя второй метод, это дает ошибку AttributeError at /register/ 'Group' object has no attribute 'groups'. Как я могу избежать этой ошибки?

Я не смог придумать причину, почему это происходит, но нашел решение. Я добавил следующие строки, чтобы определить, в какой ситуации это происходит.

if model != Group:
    userObj = User.objects.filter(id = list(pk_set)[0]).first()
else:
    userObj =  instance

Затем я использовал требуемую логику как

if userObj.groups.filter(name='Customer').exists():
    #Do something
Вернуться на верх