#lsx 这个文件定义了用户相关的数据模型

from django.db import models
from django.contrib.auth.models import AbstractUser
from django.urls import reverse
from django.utils.translation import gettext_lazy as _

#lsx 自定义用户模型，扩展了Django的默认用户模型
class BlogUser(AbstractUser):
    #lsx 用户昵称
    nickname = models.CharField(_('nick name'), max_length=50, blank=True)
    #lsx 创建时间
    created_time = models.DateTimeField(_('created time'), auto_now_add=True)
    #lsx 最后修改时间
    last_mod_time = models.DateTimeField(_('last modify time'), auto_now=True)
    #lsx 来源
    source = models.CharField(_('source'), max_length=10, blank=True)

    #lsx 获取用户详情页的url
    def get_absolute_url(self):
        return reverse('blog:author_detail', kwargs={'author_id': self.pk})

    def __str__(self):
        #lsx 返回邮箱作为用户标识
        return self.email

    #lsx 获取用户的完整url
    def get_full_url(self):
        site = get_current_site().domain
        return "https://{site}{url}".format(site=site, url=self.get_absolute_url())

    class Meta:
        ordering = ['-id']  #lsx 按ID倒序排列
        verbose_name = _('user')  #lsx 在管理后台显示的名称
        verbose_name_plural = verbose_name  #lsx 复数形式
        get_latest_by = 'id'  #lsx 获取最新记录的依据

# 需要导入get_current_site
from django.contrib.sites.shortcuts import get_current_site
