Добавить пользователя в группу в сигнале post_save
Я хочу добавить пользователя в группу после сохранения объекта пользователя. Каждый пользователь имеет тип пользователя, соответствующий группе, к которой он принадлежит. Например, если тип_пользователя равен 2, то пользователь принадлежит к группе_3, и так далее. Вот мой код:
class User(AbstractBaseUser, PermissionsMixin):
""" Custom user model """
USER_TYPE = ((1, 'HOD'), (2, 'Staff'), (3, 'Student'))
email = models.EmailField(
_("Email Address"),
max_length=255,
unique=True,
help_text="Ex: example@example.com",
)
eec = models.ForeignKey(
EEC, on_delete=models.CASCADE, null=True, related_name='eec',blank=True)
is_staff = models.BooleanField(_("Staff status"), default=False)
is_active = models.BooleanField(_("Active"), default=True)
date_joined = models.DateTimeField(_("Date Joined"), auto_now_add=True)
last_updated = models.DateTimeField(_("Last Updated"), auto_now=True)
user_type = models.IntegerField(default=1, choices=USER_TYPE)
lastName = models.CharField(default='', max_length=250)
firstName = models.CharField(default='', max_length=250)
objects = UserManager()
USERNAME_FIELD = "email"
def __str__(self):
return self.email
class Teacher(models.Model):
admin = models.OneToOneField(User, on_delete=models.CASCADE)
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
if instance.user_type == 1:
Admin.objects.create(admin=instance)
if instance.user_type == 2:
try:
Teacher.objects.create(admin=instance)
g1 = Group.objects.get(name='teacher')
instance.groups.add(g1)
except:
print("Exception")
if instance.user_type == 3:
Student.objects.create(admin=instance)
Basically, when I save the user model with a user type of 2, the group does not get updated