Django扩展内置User类
内置User类
使用内置User可以方便实现登录验证,利用Admin管理界面还可以方便添加、删除、修改用户。
一个内置的User类定义了以下字段:
username: 用户名
password: 密码
first_name: 姓名first
last_name: 姓名last
email: 邮箱
groups: Group类多对多的关系对象管理器
user_permissions: Permission类多对多的关系对象管理器
is_staff: 是否工作人员
is_active: 是否激活
is_superuser: 是否管理员
last_login: 最近登录时间
date_joined: 注册时间
扩展内置User类
在某些场合,用户需要添加自定义的字段(比如:电话号码),此时就需要扩展User类:
1. 建立一个user应用
2. 在user应用model.py文件中新建一个UserInfo的新类,继承于AbstractUser类:
from django.db import models from django.contrib.auth.models import AbstractUser # 添加电话字段 class UserInfo(AbstractUser): phone = models.CharField(null=True, max_length=20, verbose_name='电话', default='') class Meta: pass
3. 修改Settings.py
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'guardian', 'homepage', 'rest_framework', 'rest_framework.authtoken', # TokenAuthentication 'user', # 添加user应用 'stock', 'future', 'api', 'perm' ] # 设置AUTH_USER_MODEL AUTH_USER_MODEL = 'user.UserInfo'