当前位置:   article > 正文

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

3.定义user类,在构造函数中利用形参初始化三个属性:name、password、role;定

目录

一、创建用户表

二、在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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/67611
推荐阅读
相关标签
  

闽ICP备14008679号