from django.db import models from django.contrib.auth.models import AbstractUser, BaseUserManager from .utils import send_activation_email class UserManager(BaseUserManager): def get_or_create(self, defaults, **kwargs): defaults.update(is_active=False) user, created = super().get_or_create(defaults=defaults, **kwargs) if created: send_activation_email(user) return user class User(AbstractUser): full_name = models.CharField(verbose_name='Full name', max_length=255, blank=True) objects = UserManager() class Meta: unique_together = ('email',) def get_full_name(self): """ Returns the first_name plus the last_name, with a space in between. """ if self.full_name: return self.full_name.strip() return super().get_full_name()