Update models.py

master
pbskfcgaw 3 months ago
parent ca6522660b
commit 815e881aee

@ -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'
Loading…
Cancel
Save