|
|
|
|
@ -8,20 +8,28 @@ from djangoblog.utils import get_current_site
|
|
|
|
|
|
|
|
|
|
# Create your models here.
|
|
|
|
|
|
|
|
|
|
# xm: 自定义用户模型,继承自Django的AbstractUser基类
|
|
|
|
|
class BlogUser(AbstractUser):
|
|
|
|
|
# xm: 昵称字段,最大长度100,可为空
|
|
|
|
|
nickname = models.CharField(_('nick name'), max_length=100, blank=True)
|
|
|
|
|
# xm: 创建时间字段,默认值为当前时间
|
|
|
|
|
creation_time = models.DateTimeField(_('creation time'), default=now)
|
|
|
|
|
# xm: 最后修改时间字段,默认值为当前时间
|
|
|
|
|
last_modify_time = models.DateTimeField(_('last modify time'), default=now)
|
|
|
|
|
# xm: 用户来源字段,记录创建来源,可为空
|
|
|
|
|
source = models.CharField(_('create source'), max_length=100, blank=True)
|
|
|
|
|
|
|
|
|
|
# xm: 获取用户绝对URL的方法,用于生成作者详情页链接
|
|
|
|
|
def get_absolute_url(self):
|
|
|
|
|
return reverse(
|
|
|
|
|
'blog:author_detail', kwargs={
|
|
|
|
|
'author_name': self.username})
|
|
|
|
|
|
|
|
|
|
# xm: 对象的字符串表示形式,返回邮箱地址
|
|
|
|
|
def __str__(self):
|
|
|
|
|
return self.email
|
|
|
|
|
|
|
|
|
|
# xm: 获取用户完整URL的方法,包含域名
|
|
|
|
|
def get_full_url(self):
|
|
|
|
|
site = get_current_site().domain
|
|
|
|
|
url = "https://{site}{path}".format(site=site,
|
|
|
|
|
@ -29,7 +37,11 @@ class BlogUser(AbstractUser):
|
|
|
|
|
return url
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
# xm: 默认按ID倒序排列
|
|
|
|
|
ordering = ['-id']
|
|
|
|
|
# xm: 单数名称显示
|
|
|
|
|
verbose_name = _('user')
|
|
|
|
|
# xm: 复数名称显示(与单数相同)
|
|
|
|
|
verbose_name_plural = verbose_name
|
|
|
|
|
# xm: 指定最新记录的获取字段
|
|
|
|
|
get_latest_by = 'id'
|
|
|
|
|
|