from django.contrib.auth.models import AbstractUser from django.db import models from django.urls import reverse from django.utils.timezone import now from django.utils.translation import gettext_lazy as _ from djangoblog.utils import get_current_site #lht: Create your models here. class BlogUser(AbstractUser): #lht: 用户昵称字段 nickname = models.CharField(_('nick name'), max_length=100, blank=True) #lht: 用户创建时间 creation_time = models.DateTimeField(_('creation time'), default=now) #lht: 用户最后修改时间 last_modify_time = models.DateTimeField(_('last modify time'), default=now) #lht: 用户来源标识(如通过注册、后台创建等) source = models.CharField(_('create source'), max_length=100, blank=True) def get_absolute_url(self): #lht: 返回用户个人页面的URL return reverse( 'blog:author_detail', kwargs={ 'author_name': self.username}) def __str__(self): #lht: 字符串表示,返回用户邮箱 return self.email def get_full_url(self): #lht: 获取用户页面的完整URL site = get_current_site().domain url = "https://{site}{path}".format(site=site, path=self.get_absolute_url()) return url class Meta: #lht: 模型元数据配置 ordering = ['-id'] #lht: 默认按ID倒序排列 verbose_name = _('user') #lht: 单数名称 verbose_name_plural = verbose_name #lht: 复数名称 get_latest_by = 'id' #lht: 获取最新记录的字段