2013-03-03 04:47:34 -08:00
|
|
|
import hashlib
|
|
|
|
|
|
|
|
|
|
from django.contrib.auth.models import User as BaseUser
|
2022-02-18 20:27:19 -08:00
|
|
|
from django.db.models.signals import post_save
|
|
|
|
|
from django.dispatch import receiver
|
2013-03-03 04:47:34 -08:00
|
|
|
|
|
|
|
|
|
2022-02-18 21:17:27 -08:00
|
|
|
def create_token_if_necessary(user: BaseUser):
|
|
|
|
|
from rest_framework.authtoken.models import Token
|
|
|
|
|
token = Token.objects.filter(user=user).first()
|
|
|
|
|
if token is not None:
|
|
|
|
|
return token
|
|
|
|
|
else:
|
|
|
|
|
return Token.objects.create(user=user)
|
|
|
|
|
|
|
|
|
|
|
2013-03-03 04:47:34 -08:00
|
|
|
class User(BaseUser):
|
2022-02-18 21:17:27 -08:00
|
|
|
|
2013-03-03 04:47:34 -08:00
|
|
|
@property
|
|
|
|
|
def gravatar(self):
|
2017-09-23 21:12:54 +00:00
|
|
|
return hashlib.md5(self.email.encode('utf-8')).hexdigest()
|
2013-03-03 04:47:34 -08:00
|
|
|
|
|
|
|
|
class Meta:
|
2017-09-23 21:12:54 +00:00
|
|
|
proxy = True
|
2022-02-18 20:27:19 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@receiver(post_save, sender=User)
|
|
|
|
|
def create_profile(sender, instance: User, **kwargs):
|
2022-02-18 21:17:27 -08:00
|
|
|
create_token_if_necessary(instance)
|