from django.contrib.auth.models import AbstractUser from django.db import models class User(AbstractUser): """扩展用户模型""" phone = models.CharField('手机号码', max_length=11, blank=True, null=True) department = models.CharField('部门', max_length=100, blank=True, null=True) position = models.CharField('职位', max_length=100, blank=True, null=True) # 暂时移除头像字段,避免Pillow依赖 # avatar = models.ImageField('头像', upload_to='avatars/', blank=True, null=True) created_at = models.DateTimeField('创建时间', auto_now_add=True) updated_at = models.DateTimeField('更新时间', auto_now=True) # 解决反向访问器冲突 groups = models.ManyToManyField( 'auth.Group', verbose_name='groups', blank=True, help_text='The groups this user belongs to.', related_name="custom_user_set", related_query_name="custom_user", ) user_permissions = models.ManyToManyField( 'auth.Permission', verbose_name='user permissions', blank=True, help_text='Specific permissions for this user.', related_name="custom_user_set", related_query_name="custom_user", ) class Meta: verbose_name = '用户' verbose_name_plural = verbose_name db_table = 'auth_user_custom' def __str__(self): return f'{self.username} - {self.first_name or self.username}'