from django.db.models.signals import post_save from django.dispatch import receiver from accounts.models import User from invites.models import RegistrationCode import uuid @receiver(post_save, sender=User) def create_registration_code_for_manager(sender, instance, created, **kwargs): if instance.role == "manager": if created or not RegistrationCode.objects.filter(manager=instance).exists(): RegistrationCode.objects.create( code=str(uuid.uuid4()).replace("-", "")[:12], manager=instance, description=f"{instance.username} 的默认邀请码", usage_limit=10 ) elif instance.role == "user": RegistrationCode.objects.filter(manager=instance).update(usage_limit=0)