40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
![]() |
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}'
|