Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 
 

30 lignes
713 B

  1. import hashlib
  2. from django.contrib.auth.models import User as BaseUser
  3. from django.db.models.signals import post_save
  4. from django.dispatch import receiver
  5. def create_token_if_necessary(user: BaseUser):
  6. from rest_framework.authtoken.models import Token
  7. token = Token.objects.filter(user=user).first()
  8. if token is not None:
  9. return token
  10. else:
  11. return Token.objects.create(user=user)
  12. class User(BaseUser):
  13. @property
  14. def gravatar(self):
  15. return hashlib.md5(self.email.encode('utf-8')).hexdigest()
  16. class Meta:
  17. proxy = True
  18. @receiver(post_save, sender=User)
  19. def create_profile(sender, instance: User, **kwargs):
  20. create_token_if_necessary(instance)