diff --git a/src/DjangoBlog-master/accounts/models.py b/src/DjangoBlog-master/accounts/models.py index 3baddbb..44ae74b 100644 --- a/src/DjangoBlog-master/accounts/models.py +++ b/src/DjangoBlog-master/accounts/models.py @@ -9,27 +9,61 @@ from djangoblog.utils import get_current_site # Create your models here. class BlogUser(AbstractUser): + """ + 自定义用户模型,继承自Django的AbstractUser基类 + 扩展了博客系统的用户功能 + """ + + # 昵称字段,允许为空 nickname = models.CharField(_('nick name'), max_length=100, blank=True) + + # 用户创建时间,默认为当前时间 creation_time = models.DateTimeField(_('creation time'), default=now) + + # 最后修改时间,默认为当前时间 last_modify_time = models.DateTimeField(_('last modify time'), default=now) + + # 用户创建来源(如:网站注册、第三方登录等),允许为空 source = models.CharField(_('create source'), max_length=100, blank=True) def get_absolute_url(self): + """ + 获取用户的绝对URL,用于Django的通用视图和模板中 + 返回用户详情页的URL + """ return reverse( 'blog:author_detail', kwargs={ 'author_name': self.username}) def __str__(self): + """ + 定义模型的字符串表示形式 + 在管理后台和其他显示对象的地方使用 + 这里使用邮箱作为标识 + """ return self.email def get_full_url(self): - site = get_current_site().domain + """ + 获取用户的完整URL(包含域名) + 用于生成完整的用户主页链接 + """ + site = get_current_site().domain # 获取当前站点域名 url = "https://{site}{path}".format(site=site, path=self.get_absolute_url()) return url class Meta: + """模型的元数据配置""" + + # 默认按ID降序排列(最新的用户排在前面) ordering = ['-id'] + + # 在管理后台中显示的单数名称 verbose_name = _('user') + + # 在管理后台中显示的复数名称 verbose_name_plural = verbose_name - get_latest_by = 'id' + + # 指定获取最新记录时使用的字段 + get_latest_by = 'id' \ No newline at end of file