from django.db import models from django.contrib.auth.models import AbstractUser class User(AbstractUser): full_name = models.CharField(verbose_name='Full name', max_length=255, blank=True) 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() def get_user_by_email(self, email): email_field = getattr(self, 'EMAIL_FIELD', 'email') return self.objects.filter(**{email_field + '__iexact': email})