class User(AbstractBaseUser, PermissionsMixin): username_validator = UnicodeUsernameValidator() username = models.CharField( _('username'), max_length=150, unique=True, help_text= _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.' ), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) email = models.EmailField(_('email address'), unique=True, blank=True) is_staff = models.BooleanField( _('staff status'), default=False, help_text=_( 'Designates whether the user can log into this admin site.'), ) is_active = models.BooleanField( _('active'), default=True, help_text=_( 'Designates whether this user should be treated as active. ' 'Unselect this instead of deleting accounts.'), ) is_student = models.BooleanField(default=False) is_business = models.BooleanField(default=False) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) objects = UserManager() EMAIL_FIELD = 'email' USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['email'] class Meta: verbose_name = _('user') verbose_name_plural = _('users') def clean(self): super().clean() self.email = self.__class__.objects.normalize_email(self.email) def email_user(self, subject, message, from_email=None, **kwargs): """Send an email to this user.""" send_mail(subject, message, from_email, [self.email], **kwargs) def get_user(self): if self.is_student: return Student.objects.get(user_id=self.id) if self.is_business: return Business.objects.get(user_id=self.id)
class User(AbstractBaseUser, PermissionsMixin, TrackingModel): """ An abstract base class implementing a fully featured User model with admin-compliant permissions. Username and password are required. Other fields are optional. """ username_validator = UnicodeUsernameValidator() username = models.CharField( _('username'), max_length=150, unique=True, help_text= _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.' ), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) email = models.EmailField(_('email address'), blank=False, unique=True) is_staff = models.BooleanField( _('staff status'), default=False, help_text=_( 'Designates whether the user can log into this admin site.'), ) is_active = models.BooleanField( _('active'), default=True, help_text=_( 'Designates whether this user should be treated as active. ' 'Unselect this instead of deleting accounts.'), ) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) email_verified = models.BooleanField( _('email_verified'), default=False, help_text=_('Designates whether this users email is verified. '), ) objects = MyUserManager() EMAIL_FIELD = 'email' USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['username'] @property def token(self): token = jwt.encode( { 'username': self.username, 'email': self.email, 'exp': datetime.utcnow() + timedelta(hours=24) }, settings.SECRET_KEY, algorithm='HS256') return token
class Meta: model = get_user_model() # fiels gibt die eigenschaft an die seriasiert werden müssen fields = ['id', 'username', 'is_staff', 'groups'] extra_kwargs = { 'username': { 'validators': [UnicodeUsernameValidator()], } }
class Meta: model = CustomUser exclude = ('is_superuser', 'is_staff', 'is_active', 'date_joined', 'groups', 'user_permissions', 'password') extra_kwargs = { 'username': { 'validators': [UnicodeUsernameValidator()], } }
class UserProfile(AbstractUser): """ 自定义扩展用户 """ username_validator = UnicodeUsernameValidator() username = models.CharField( _('username'), max_length=20, unique=True, help_text= _('Required. 20 characters or fewer. Letters, digits and @/./+/-/_ only.' ), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) email = models.EmailField(blank=True, null=True, verbose_name="电子邮箱", help_text="电子邮箱") avatar = models.ImageField(blank=True, null=True, upload_to="avatar/", default="avatar/default.png", verbose_name="头像", help_text="头像") age = models.IntegerField(blank=True, null=True, verbose_name="年龄", help_text="年龄") website = models.URLField(blank=True, null=True, verbose_name="个人网站", help_text="个人网站") hometown = models.CharField(max_length=64, blank=True, null=True, verbose_name="家乡", help_text="家乡") introduction = models.CharField(max_length=128, blank=True, null=True, verbose_name="个人简介", help_text="个人简介") class Meta: verbose_name = "用户" verbose_name_plural = "用户" def get_avatar_url(self): if self.socialaccount_set.count(): return self.socialaccount_set.all()[0].get_avatar_url() return None def __str__(self): return "用户:{0}".format(self.username)
class Meta: model = User fields = ('username', 'email', 'password') extra_kwargs = { 'username': { 'validators': [UnicodeUsernameValidator()], }, 'password': {'required': False, 'write_only': True} }
class MyAbstractUser(AbstractBaseUser, PermissionsMixin): username_validator = UnicodeUsernameValidator() username = models.CharField( _('username'), max_length=30, unique=True, help_text= _('Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.' ), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) first_name = models.CharField(_('first name'), max_length=30, blank=True) last_name = models.CharField(_('last name'), max_length=30, blank=True) email = models.EmailField(_('email address'), blank=True) is_staff = models.BooleanField( _('staff status'), default=False, help_text=_( 'Designates whether the user can log into this admin site.'), ) is_active = models.BooleanField( _('active'), default=True, help_text=_( 'Designates whether this user should be treated as active. ' 'Unselect this instead of deleting accounts.'), ) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) objects = UserManager() EMAIL_FIELD = 'email' USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['email'] class Meta: verbose_name = _('user') verbose_name_plural = _('users') abstract = True def clean(self): super().clean() self.email = self.__class__.objects.normalize_email(self.email) def get_full_name(self): full_name = '%s %s' % (self.first_name, self.last_name) return full_name.strip() def get_short_name(self): return self.first_name def email_user(self, subject, message, from_email=None, **kwargs): send_mail(subject, message, from_email, [self.email], **kwargs)
class Meta: model = get_user_model() fields = ("username", "first_name", "last_name", "email", "password", "phone_number", "user_type") extra_kwargs = { "username": { "validators": [UnicodeUsernameValidator()], } }
class Meta: model = User fields = ('url', 'username', 'name', 'surname', 'email', 'tel', 'address') extra_kwargs = { 'username': { 'validators': [UnicodeUsernameValidator()], } }
class Meta: model = User fields = ('id', 'username', 'first_name', 'email') # https://medium.com/django-rest-framework/dealing-with-unique-constraints-in-nested-serializers-dade33b831d9 extra_kwargs = { 'username': { 'validators': [UnicodeUsernameValidator()], } }
class Meta: model = User fields = ("name", "email", "password", "user_id", 'user') extra_kwargs = { 'usercode': { 'validators': [UnicodeUsernameValidator()], 'read_only': True }, }
class User(AbstractBaseUser, PermissionsMixin): username_validator = UnicodeUsernameValidator() username = models.CharField( _('username'), max_length=150, unique=True, help_text=_('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) name = models.CharField(_('name'), max_length=160) email = models.EmailField(_('email address'), blank=True) is_active = models.BooleanField( _('active'), default=True, help_text=_( 'Designates whether this user should be treated as active. ' 'Only active users can login.' ), ) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) objects = UserManager() EMAIL_FIELD = 'email' USERNAME_FIELD = 'username' REQUIRED_FIELDS = [] class Meta: verbose_name = _('user') verbose_name_plural = _('users') def __str__(self): return self.name + f' || {self.username}' @property def is_staff(self): """ THIS IS A HACK TO PLAY NICELY WITH ADMIN. DO NOT USE. For library staff, use "is_library_staff" property """ return bool(self.is_superuser) @property def is_library_staff(self): return hasattr(self, 'staff') def clean(self): super().clean() self.email = self.__class__.objects.normalize_email(self.email) def email_user(self, subject, message, from_email=None, **kwargs): """Send an email to this user.""" send_mail(subject, message, from_email, [self.email], **kwargs)
class User(AbstractBaseUser, PermissionsMixin): username_validator = UnicodeUsernameValidator() objects = UserManager() email = models.EmailField(max_length=255, unique=True) username = models.CharField( "username", max_length=16, blank=False, unique=True, help_text= ("Required. 50 characters or fewer. Letters, digits and @/./+/-/_ only." ), validators=[username_validator, username_length], ) # birth_date = models.DateField( # auto_now=False, null=False, blank=False, default=timezone.now() # ) point = models.PositiveIntegerField(default=30) user_image = models.ImageField(blank=True, upload_to="accounts/userImage/%Y/%m/&d") follower = models.ManyToManyField("self", blank=True, related_name="following", symmetrical=False) comments = models.CharField(max_length=50, blank=True) mbti = models.ForeignKey(Mbti, null=True, on_delete=models.CASCADE) company = models.ForeignKey(Company, null=True, on_delete=models.CASCADE) is_mento = models.BooleanField(default=True) is_active = models.BooleanField(default=True) is_admin = models.BooleanField(default=False) is_superuser = models.BooleanField(default=False) is_staff = models.BooleanField(default=False) date_joined = models.DateTimeField(auto_now_add=True) EMAIL_FIELD = "email" USERNAME_FIELD = "username" REQUIRED_FIELDS = [ "email", ] @property def age(self): today = date.today() try: birthday = self.birth_date.replace(year=today.year) except ValueError: birthday = self.birth_date.replace(year=today.year, month=self.birth_date.month + 1, day=1) if birthday > today: return today.year - self.birth_date.year - 1 else: return today.year - self.birth_date.year
class Meta: model = UserStatistics fields = ('user', 'net_gain', 'NBA_profile', 'Madden_profile', 'FIFA_profile', 'NHL_profile') extra_kwargs = { 'user': { 'validators': [UnicodeUsernameValidator()], } }
class Meta: model = User fields = ['otp', 'password', 'confirm_password'] extra_kwargs = { 'email': { 'validators': [UnicodeUsernameValidator()], }, }
class Meta: model = Persona fields = ('id', 'identificacion', 'nombre', 'correo', 'direccion', 'telefono', 'extranjero') extra_kwargs = { 'identificacion': { 'validators': [UnicodeUsernameValidator()], } }
class Meta: model = User fields = ['email', 'first_name', 'last_name', 'username'] extra_kwargs = { 'username': { 'validators': [UnicodeUsernameValidator()], } }
class User(AbstractBaseUser): """ Extends AbstractBaseUser, inherits password field and set of useful methods Added some fields and methods based on builtin django user (AbstractUser) class At the end contains: ID(default if no pk specified), username, email, password, date_joined, last_login """ username_validator = UnicodeUsernameValidator( ) if six.PY3 else ASCIIUsernameValidator() username = models.CharField( _('username'), max_length=150, unique=True, help_text= _('Maksymalna długość 150 znaków. Dozwolone są litery, cyfry i @/./+/-/_.' ), validators=[username_validator], error_messages={ 'unique': _("Użytkownik o takiej nazwie już istnieje"), 'invalid': _("Podaj poprawną nazwę użytkownika" ), # Override username_validator error }, ) email = models.EmailField( _('email address'), unique=True, error_messages={ 'unique': _("Użytkownik o takim emailu już istnieje"), }, ) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) objects = UserManager() EMAIL_FIELD = 'email' USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['password', 'email'] def clean(self): super(User, self).clean() # call base method - clearing username def get_full_name(self): """ Base method force to override this method Just return username """ return self.username def get_short_name(self): """ Base method force to override this method Just return username """ return self.username
class Meta: model = User fields = ('id', 'username', 'email', 'first_name', 'last_name') read_only_fields = ('id', ) extra_kwargs = { 'username': { 'validators': [UnicodeUsernameValidator()], } }
class User(AbstractBaseUser, PermissionsMixin): email = models.EmailField( verbose_name=_('email address'), max_length=255, unique=True ) username = models.CharField( _('username'), max_length=30, unique=True, validators=[UnicodeUsernameValidator()] ) first_name = models.CharField(_('first name'), max_length=30, blank=True) last_name = models.CharField(_('last name'), max_length=150, blank=True) is_active = models.BooleanField( _('active'), default=True, help_text=_( 'Designates whether this user should be treated as active. ' 'Unselect this instead of deleting accounts.' ), ) is_staff = models.BooleanField( _('staff status'), default=False, help_text=_( 'Designates whether the user can log into this admin site.' ), ) # is_superuser field provided by PermissionsMixin # groups field provided by PermissionsMixin # user_permissions field provided by PermissionsMixin date_joined = models.DateTimeField( _('date joined'), default=timezone.now ) objects = UserManager() USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['username', 'first_name', 'last_name'] def get_full_name(self): full_name = '%s %s' % (self.first_name, self.last_name) return full_name.strip() def get_short_name(self): return self.first_name.strip() def get_initial(self): return '{}{}'.format(self.first_name[0], self.last_name[0]).upper() def __str__(self): return '{} - {}'.format(self.username, self.email) def has_perm(self, perm, obj=None): return True def has_module_perms(self, app_label): return True
class App(AbstractBaseUser): userNameValidator = UnicodeUsernameValidator() username = models.CharField( _('username'), max_length=150, unique=True, help_text= _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.' ), validators=[userNameValidator], error_messages={ 'unique': _("A user with that username already exists."), }, ) first_name = models.CharField(_('first name'), max_length=30, blank=True) last_name = models.CharField(_('last name'), max_length=150, blank=True) email = models.EmailField(_('email address'), blank=True) is_staff = models.BooleanField( _('staff status'), default=False, help_text=_( 'Designates whether the user can log into this admin site.'), ) is_active = models.BooleanField( _('active'), default=True, help_text=_( 'Designates whether this user should be treated as active. ' 'Unselect this instead of deleting accounts.'), ) is_superuser = models.BooleanField( _('superuser status'), default=False, help_text=_('Designates that this user has all permissions without ' 'explicitly assigning them.'), ) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) EMAIL_FIELD = 'email' USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['email'] objects = UserManager() # objects = MyBaseUserManager() def create_token(self): headers = {"typ": "JWT", "alg": "HS256", "user_id": self.username} playload = { "headers": headers, "iss": 'myapi', "exp": time.time() + EXPIRE_MINUTES, 'iat': time.time() } signature = jwt.encode(playload, SECRET_KEY, algorithm='HS256') return signature, playload['exp']
def __init__(self): self.validators = [ validators.CaseInsensitiveUnique( get_user_model(), 'username', 'Invalid username: Already taken'), validators.ReservedNameValidator(), validators.validate_confusables, UnicodeUsernameValidator() ]
class Meta: model = User fields = ['url', 'id','username','email', 'groups'] read_only_fields = ('groups',) extra_kwargs = { 'username': { 'validators': [UnicodeUsernameValidator()] } }
class Meta: model = User fields = ('id', 'username', 'is_active', 'first_name', 'last_name', 'email', 'auth_token') extra_kwargs = { 'username': { 'validators': [UnicodeUsernameValidator()] } }
class Meta: model = User fields = ['id','url', 'username', 'email', 'groups'] extra_kwargs = { 'username': { 'validators': [UnicodeUsernameValidator()], } }
class User(AbstractBaseUser): username_validator = UnicodeUsernameValidator() USERNAME_FIELD = 'username' username = models.CharField( _('username'), max_length=150, unique=True, help_text=_('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) is_active = models.BooleanField( _('active'), default=True, help_text=_( 'Designates whether this user should be treated as active. ' 'Unselect this instead of deleting accounts.' ), ) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) first_name = models.CharField(_('first name'), max_length=30, blank=True) last_name = models.CharField(_('last name'), max_length=150, blank=True) email = models.EmailField(_('email address'), blank=True) avatar = models.ImageField(_('avater'), upload_to=user_avatar_path, blank=True, null=True) organization = models.ForeignKey( 'Organization', verbose_name=_('organization'), on_delete=models.SET_NULL, null=True, related_name='organization_users', blank=True ) sex = models.CharField(_('sex'), max_length=10, choices=[('M', '男'), ('F', '女')], blank=True) def get_full_name(self): """ Return the first_name plus the last_name, with a space in between. """ full_name = '%s %s' % (self.last_name, self.first_name) return full_name.strip() def authenticate(self, password): return self.check_password(password) # def delete(self): # self.is_active = False # self.save(update_fields=['is_active']) class Meta: ordering = ['username'] def __str__(self): name = '%s(%s)' % (self.username, self.get_full_name()) return name.strip()
class UserAbstract(AbstractBaseUser, PermissionsMixin): username_validator = UnicodeUsernameValidator() first_name = models.CharField(_('first name'), max_length=150, blank=True) last_name = models.CharField(_('last name'), max_length=150, blank=True) username = models.CharField( _('username'), max_length=150, unique=True, help_text= _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.' ), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) email = models.EmailField(_('email address'), unique=True, blank=True) is_staff = models.BooleanField( _('staff status'), default=False, help_text=_( 'Designates whether the user can log into this admin site.'), ) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) is_active = models.BooleanField( _('active'), default=True, help_text=_( 'Designates whether this user should be treated as active. ' 'Unselect this instead of deleting accounts.'), ) objects = BaseManager() EMAIL_FIELD = 'email' USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['email'] class Meta: abstract = True def clean(self): super().clean() self.email = self.__class__.objects.normalize_email(self.email) def get_full_name(self): """ Return the first_name plus the last_name, with a space in between. """ full_name = '%s %s' % (self.first_name, self.last_name) return full_name.strip() def get_short_name(self): """Return the short name for the user.""" return self.first_name
class User(AbstractBaseUser): username_validator = UnicodeUsernameValidator() name = models.CharField( verbose_name='username', max_length=255, validators=[username_validator], unique=True, ) email = models.EmailField( verbose_name='email address', max_length=255, ) active = models.BooleanField(default=True) staff = models.BooleanField(default=False) stake_holder = models.BooleanField(default=False) admin = models.BooleanField(default=False) USERNAME_FIELD = 'name' EMAIL_FIELD = 'email' REQUIRED_FIELDS = ['email'] objects = UserManager() def get_full_name(self): return self.name def get_short_name(self): return self.name def __str__(self): return self.name def has_perm(self, perm, obj=None): "Does the user have a specific permission?" return True def has_module_perms(self, app_label): "Does the user have permissions to view the app `app_label`?" return True @property def is_staff(self): return self.staff @property def is_admin(self): return self.admin @property def is_active(self): return self.active @property def is_stake_holder(self): return self.stake_holder
class User(AbstractBaseUser, PermissionsMixin): username = models.CharField(max_length=20, help_text='请输入20个以下的数字或字母组成的用户名', validators=[UnicodeUsernameValidator()], unique=True, verbose_name='用户名') TYPE_CHOICE = ((0, '管理员'), (1, '学生'), (2, '团学组织'), (3, '社团')) type = models.PositiveSmallIntegerField(choices=TYPE_CHOICE, default=1, verbose_name='用户类型') name = models.CharField(max_length=50, verbose_name='名称') CAMPUS_CHOICE = ( (0, '跨校区'), (1, '八里台'), (2, '津南'), (3, '泰达'), ) campus = models.PositiveSmallIntegerField(choices=CAMPUS_CHOICE, default=0, verbose_name='校区') college = models.ForeignKey(to=College, blank=True, null=True, on_delete=models.SET_NULL, verbose_name='学院') description = models.TextField(max_length=200, blank=True, null=True, verbose_name='描述') organizations = models.ManyToManyField( to='self', blank=True, related_name='members', symmetrical=False, help_text='可添加多个;组织关系不递归,间接上级组织需另外添加。', verbose_name='上级组织', ) is_active = models.BooleanField(default=True, verbose_name='是否启用') is_staff = models.BooleanField(default=True, verbose_name='是否允许登录') ADMIN = 0 STUDENT = 1 ORGANIZATION = 2 CLUB = 3 USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['name'] objects = UserManager() class Meta: verbose_name = '用户' verbose_name_plural = verbose_name def __str__(self): return str(self.name) + '(' + str(self.get_type_display()) + ')'
class User(AbstractBaseUser, PermissionsMixin): """ An abstract base class implementing a fully featured User model with admin-compliant permissions. Username and password are required. Other fields are optional. """ username_validator = UnicodeUsernameValidator() username = models.CharField( _('username'), max_length=150, unique=True, help_text= _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.' ), validators=[username_validator], error_messages={ 'unique': _("A user with that username already exists."), }, ) first_name = models.CharField(_('first name'), max_length=30, blank=True) last_name = models.CharField(_('last name'), max_length=150, blank=True) email = models.EmailField(_('email address'), blank=True) is_staff = models.BooleanField( _('staff status'), default=False, help_text=_( 'Designates whether the user can log into this admin site.'), ) is_active = models.BooleanField( _('active'), default=True, help_text=_( 'Designates whether this user should be treated as active. ' 'Unselect this instead of deleting accounts.'), ) date_joined = models.DateTimeField(_('date joined'), default=timezone.now) objects = UserManager() EMAIL_FIELD = 'email' USERNAME_FIELD = 'username' REQUIRED_FIELDS = ['email'] class Meta: verbose_name = _('user') verbose_name_plural = _('users') #abstract = True # ここを削除しないといけないことを忘れない!!!!!!!!!! def clean(self): super().clean() self.email = self.__class__.objects.normalize_email(self.email) def email_user(self, subject, message, from_email=None, **kwargs): """Send an email to this user.""" send_mail(subject, message, from_email, [self.email], **kwargs)