內置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'