"""Django 内置用户的非认证资料模型。""" from django.conf import settings from django.db import models from common.models import TimeStampedModel class UserProfile(TimeStampedModel): """保存可独立演进的展示资料,不复制认证字段。""" user = models.OneToOneField( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="profile", verbose_name="用户", ) display_name = models.CharField("显示名", max_length=80, blank=True) timezone = models.CharField("时区", max_length=64, default="Asia/Shanghai") class Meta: verbose_name = "用户资料" verbose_name_plural = "用户资料" def __str__(self): return self.display_name or self.user.get_username()