1. 관리자 모드에서 미리 원하는 Group(나는 "users"라는 Group을 만들어 놨다)을 추가한다.
2. BlogVenv\Lib\site-packages\django\contrib\auth\models.py
...
# 추가
from django.db.models.signals import post_save
from django.dispatch import receiver
...
class User(AbstractUser):
"""
Users within the Django authentication system are represented by this
model.
Username and password are required. Other fields are optional.
"""
class Meta(AbstractUser.Meta):
swappable = 'AUTH_USER_MODEL'
# 추가
@receiver(post_save, sender=User)
def insertGroup(sender, instance, created, **kwargs):
# when the first join, just once
if created:
try:
# Group.objects.get(name="users"), same blow script
group = Group.objects.get_by_natural_key("users")
instance.groups.add(group)
except Group.DoesNotExist as e:
pass
...
3. 이렇게만 하면 User가 추가되면 "users" Group에 추가 되고,
해당 User가 삭제될때는 auth_group과 n:n관계의 교차엔터티 auth_user_groups의 정보도 delete cascade 제약조건으로 자동으로 삭제된다.