Удаление группы при удалении пользователя django

Я новичок в Django и я создал регистрационную форму, где, когда пользователь регистрируется, она автоматически создает группу с тем же именем, что и имя пользователя, и помещает нового пользователя в нее. Таким образом, каждый пользователь находится внутри уникальной группы пользователей (которая имеет то же имя, что и пользователь в ней).

Теперь моя проблема в том, что если я удалю пользователя, то группа также не будет удалена. Есть ли способ автоматизировать этот процесс? То есть, удалить пользователя --> удалить группу, в которой он/она был/была?

Мой код

views.py

@unauthenticated_user
def register_user(request):
    if request.method == "POST":
        form = RegisterUserForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data['username']
            password = form.cleaned_data['password1']
            user = authenticate(username=username, password=password)
            login(request, user)
            messages.success(request, "Registration Succesfully")
            # every user is inside an unique group with its name
            Group.objects.get_or_create(name=username)
            group = Group.objects.get(name=username)
            group.user_set.add(user)
            user.save()
            return HttpResponseRedirect('register')
        else:
            pass
    else:
        form = RegisterUserForm()
    return render(request, 'authenticate/register_user.html', {
        'form': form,
    })

Решением было использование сигналов внутри models.py, таких как

models.py

from django.dispatch import receiver
from django.db.models.signals import post_delete
from django.contrib.auth.models import Group

@receiver(post_delete, sender=User)
def delete_user_group(sender, instance, *arg, **kwargs):
    group = Group.objects.get(name=instance.username)
    group.delete()
Вернуться на верх