基于Django的在线MOOC学习系统(3)——创建 user App 并设计 models.py

来源:互联网 发布:我打软件技巧 编辑:程序博客网 时间:2024/06/11 21:10

创建 user App:

这里写图片描述

设计 models.py:

在继承 AbstractUser 的基础上,对 PersonalInformation 表进行设计

AbstractUser:

class AbstractUser(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() if six.PY3 else ASCIIUsernameValidator()    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=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()    USERNAME_FIELD = 'username'    REQUIRED_FIELDS = ['email']    class Meta:        verbose_name = _('user')        verbose_name_plural = _('users')        abstract = True    def get_full_name(self):        """        Returns 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):        "Returns the short name for the user."        return self.first_name    def email_user(self, subject, message, from_email=None, **kwargs):        """        Sends an email to this User.        """        send_mail(subject, message, from_email, [self.email], **kwargs)

注册 app ,并替换原来的 user 表:

这里写图片描述

数据表实体-联系图(E-R图):

这里写图片描述

这里写图片描述

迁移数据:

这里写图片描述

这里写图片描述

0 0
原创粉丝点击