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'
 
 
posted @ 2019-09-02 11:01  BRYANT_2019  阅读(792)  评论(0编辑  收藏  举报