from django.db import models from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin from django.utils.translation import ugettext_lazy as _ from .managers import UserManager class User(AbstractBaseUser, PermissionsMixin): """ Holds information related to an user. """ REQUIRED_FIELDS = [] USERNAME_FIELD = 'email' objects = UserManager() name = models.CharField(_(u'Name'), max_length=100, help_text='Your name here', unique=False) email = models.EmailField(verbose_name=_(u'Email'), max_length=255, unique=True, help_text='Unique field', error_messages={'unique': _('This email already exists')}) age = models.PositiveSmallIntegerField(_('Age'), help_text='Allow only positive integers') is_staff = models.BooleanField( _('This user can see the admin panel?'), default=False) is_active = models.BooleanField(_('Is Active'), default=False)