大概介绍:
Auth这个是django提供的一套表模型,django_admin就是默认使用的这套模型,下面我们来继承他。
第一步:models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
"""用户模型类"""
telephone= models.CharField(max_length=11, unique=True, verbose_name='手机号码')
class Meta:
db_table = 'userinfo' # 创建的表名,如果不写,默认app_userinfo
# 下面两个是配套的,用来在admin中表名显示汉字
verbose_name = '用户信息'
verbose_name_plural = verbose_name
def __str__(self):
return self.username
第二步settings当中注册:
# 注册自定义用户模型,格式:“app应用名.表名称”
AUTH_USER_MODEL = 'users.User'
第三步:完成
我粗略解释一下为什么需要在settings里面进行注册:
a 因为,为了让我们的自己表,跟django默认的表合二为一,不要django在生成他默认的表了,以后都用我们自定义的表,进行相关的处理。
b 这个合二为一的表,是django_admin权限校验的基础,我们给继承了,以后django_admin会用我们的表,但是不影响django_admin的校验规则。
c django_admin的校验本质是依赖session的。
d 这个Auth模块提供了一系列的快速校验的方法,只要继承了AbstractUser就可以使用他的方法以及属性,但是我们一般不使用他的校验方法以及属性,都是自定义,好吧!不装了,一般都是cv别人的。