""" 用户模块模型 """ from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, PermissionsMixin from django.db import models class UserManager(BaseUserManager): """用户管理器""" def create_user(self, phone, password=None, **extra_fields): if not phone: raise ValueError('手机号不能为空') user = self.model(phone=phone, **extra_fields) if password: user.set_password(password) user.save(using=self._db) return user def create_superuser(self, phone, password=None, **extra_fields): extra_fields.setdefault('is_staff', True) extra_fields.setdefault('is_superuser', True) return self.create_user(phone, password, **extra_fields) class User(AbstractBaseUser, PermissionsMixin): """用户模型""" id = models.BigAutoField(primary_key=True) phone = models.CharField('手机号', max_length=20, unique=True) nickname = models.CharField('昵称', max_length=50, blank=True, default='') avatar = models.URLField('头像', max_length=500, blank=True, default='') is_active = models.BooleanField('是否激活', default=True) is_staff = models.BooleanField('是否管理员', default=False) created_at = models.DateTimeField('创建时间', auto_now_add=True) updated_at = models.DateTimeField('更新时间', auto_now=True) objects = UserManager() USERNAME_FIELD = 'phone' REQUIRED_FIELDS = [] class Meta: db_table = 'user' verbose_name = '用户' verbose_name_plural = '用户' def __str__(self): return self.phone