signals.py 875 B

1234567891011121314151617181920212223242526
  1. from django.dispatch import receiver
  2. from django.db.models.signals import pre_save, post_save
  3. from django.template.defaultfilters import slugify
  4. from .models import Profile
  5. from adhesions.models import User
  6. @receiver(pre_save, sender=User, dispatch_uid='set_unusable_password')
  7. def set_unusable_password(sender, instance, **kwargs):
  8. if not instance.password:
  9. instance.set_unusable_password()
  10. @receiver(pre_save, sender=User, dispatch_uid='set_default_username')
  11. def set_default_username(sender, instance, **kwargs):
  12. print(1, instance.username)
  13. if not instance.username:
  14. instance.username = slugify(instance.get_full_name())
  15. print(2, instance.username)
  16. @receiver(post_save, sender=User, dispatch_uid='create_profile')
  17. def create_profile(sender, instance, created, **kwargs):
  18. if created:
  19. Profile.objects.create(user=instance)