Django扩展内置User类

Posted bryant24

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
 
 

以上是关于Django扩展内置User类的主要内容,如果未能解决你的问题,请参考以下文章

18_django的用户模型和扩展django的用户模型

自定义 Django的User Model,扩展 AbstractUser类注意事项

django 3.xx 扩展User表

django 3.xx 扩展User表

CRM手记-1 | Django

如何在mongodb中扩展django的默认用户?