python定义用户类user_西游之路——python全栈——自定义用户认证

目录

一、创建用户表

二、在admin中设置展示内容

三、在settings文件中指定用于用户认证的数据库表类

django自定义用户认证(使用自定义的UserProfile,而不是django自带的),就需要(django要求)将为UserProfile单独创建一个app,这个app啥也不干,就是为UserProfile而生的;

这里我们创建一个app,名字叫做custom_auth,事实上,我们只需要对其中的models文件和admin.py做操作就可以了;

第一步:创建user model

下面是models.py文件的内容

1 from django.utils.safestring importmark_safe2 from django.db importmodels3 from django.contrib.auth.models import(4 BaseUserManager, AbstractBaseUser,PermissionsMixin5 #BaseUserManager  用户管理基类,用于创建用户

6 #AbstractBaseUser 抽象类,声明一些必须字段,不会自己生产表,继承的子类才会,主要内容:class Meta abstract=True

7 #PermissionMixin 权限管理类,也是抽象类

8 )9

10 class UserProFileManager(BaseUserManager): #用于创建用户,需要在settings文件中声明

11 def create_user(self, email, name, password=None):12 """

13 Creates and saves a User with the given email, name and password.14 """

15 if notemail:16 raise ValueError('Users must have an email address')17

18 user =self.model(19 email=self.normalize_email(email),20 name=name,21 )22

23 user.set_password(password)24 user.save(using=self._db)25 returnuser26

27 defcreate_superuser(self, email, name, password):28 """

29 Creates and saves a superuser with the given email, name and password.30 """

31 user =self.create_user(32 email,33 password=password,34 name=name,35 )36 user.is_superuser =True37 user.save(using=self._db)38 returnuser39

40 classUserProFile(AbstractBaseUser,PermissionsMixin):41 email =models.EmailField(42 verbose_name='email address',43 max_length=255,44 unique=True,45 blank=True,46 null=True47 )48 password =models.CharField(49 verbose_name='password',50 max_length=128,51 h

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值