From 995a8ad492fa1ea36d9b1dc60666e6fdc671264b Mon Sep 17 00:00:00 2001 From: p9xvr8cjz <2775939221@qq.com> Date: Fri, 7 Nov 2025 20:59:26 +0800 Subject: [PATCH] Update models.py --- src/DjangoBlog-master/accounts/models.py | 69 +++++++++++++++++++----- 1 file changed, 57 insertions(+), 12 deletions(-) diff --git a/src/DjangoBlog-master/accounts/models.py b/src/DjangoBlog-master/accounts/models.py index 3baddbb..76dc501 100644 --- a/src/DjangoBlog-master/accounts/models.py +++ b/src/DjangoBlog-master/accounts/models.py @@ -9,27 +9,72 @@ from djangoblog.utils import get_current_site # Create your models here. class BlogUser(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) + """ + 博客用户模型,继承自Django内置的AbstractUser基类 + 扩展了标准用户模型,增加博客系统特有的字段 + """ + + #ZXY: 昵称字段:用户显示名称,可为空 + nickname = models.CharField( + _('nick name'), #ZXY: 国际化标签,在admin中显示为"昵称" + max_length=100, #ZXY: 最大长度100个字符 + blank=True) #ZXY: 允许为空,非必填字段 + + #ZXY: 创建时间:记录用户账号创建的时间点 + creation_time = models.DateTimeField( + _('creation time'), #ZXY: 显示为"创建时间" + default=now) #ZXY: 默认值为当前时间,自动记录创建时间戳 + + #ZXY: 最后修改时间:记录用户信息最后一次修改的时间 + last_modify_time = models.DateTimeField( + _('last modify time'), #ZXY: 显示为"最后修改时间" + default=now) #ZXY: 默认值为当前时间 + + #ZXY: 注册来源:记录用户是通过什么渠道注册的 + source = models.CharField( + _('create source'), #ZXY: 显示为"创建来源" + max_length=100, #ZXY: 最大长度100个字符 + blank=True) #ZXY: 允许为空 def get_absolute_url(self): + """ + 获取用户详情页的URL路径(不含域名) + 用于Django的通用视图和admin中的"查看现场"链接 + Returns: + str: 用户详情页的URL路径,如 '/author/testuser/' + """ return reverse( 'blog:author_detail', kwargs={ - 'author_name': self.username}) + 'author_name': self.username}) #ZXY: 使用用户名作为URL参数 def __str__(self): + """ + 定义模型的字符串表示,在admin和shell中显示 + 这里使用邮箱而不是用户名,便于管理员识别用户 + Returns: + str: 用户的邮箱地址 + """ return self.email def get_full_url(self): - site = get_current_site().domain - url = "https://{site}{path}".format(site=site, - path=self.get_absolute_url()) + """ + 获取包含完整域名的用户详情页URL + 用于邮件通知、外部链接等需要完整URL的场景 + Returns: + str: 完整的用户URL,如 'https://example.com/author/testuser/' + """ + site = get_current_site().domain #ZXY: 获取当前站点的域名 + url = "https://{site}{path}".format( + site=site, + path=self.get_absolute_url()) #ZXY: 组合域名和路径 return url class Meta: - ordering = ['-id'] - verbose_name = _('user') - verbose_name_plural = verbose_name - get_latest_by = 'id' + """ + 模型的元数据配置类 + 用于定义模型级别的选项和配置 + """ + ordering = ['-id'] #ZXY: 默认按ID降序排列,新的用户显示在前面 + verbose_name = _('user') #ZXY: 单数形式的显示名称 + verbose_name_plural = verbose_name #ZXY: 复数形式与单数相同 + get_latest_by = 'id' #ZXY: 指定获取最新记录的字段