潭州课堂25班:Ph201805201 django 项目 第七课 用户模型设计 (课堂笔记

编程入门 行业动态 更新时间:2024-10-08 01:27:30

潭州<a href=https://www.elefans.com/category/jswz/34/1769265.html style=课堂25班:Ph201805201 django 项目 第七课 用户模型设计 (课堂笔记"/>

潭州课堂25班:Ph201805201 django 项目 第七课 用户模型设计 (课堂笔记

 在 user 的应用中的 models.py:

导入 dango 自带的用户模型

from django.contrib.auth.models import AbstractUser,UserManager as _UserManager

在主目录下的配置文件中加入:
# 自定义用户模型
AUTH_USER_MODEL = 'users.Users'

 

 

查看类的结构:

查看类的继承关系,

 

 用户模型设计 :

from django.db import models
from django.contrib.auth.models import AbstractUser, UserManager as _UserManagerclass UserManager(_UserManager):"""define user manager for modifing 'no need email'when 'python manager.py createsuperuser '"""def create_superuser(self, username, password, email=None, **extra_fields):super(UserManager, self).create_superuser(username=password,password=password, email=email, **extra_fields)class Users(AbstractUser):"""add mobile、email_active fields to Django users models."""objects = UserManager()# A list of the field names that will be prompted for# when creating a user via the createsuperuser management command.REQUIRED_FIELDS = ['mobile']# help_text在api接口文档中会用到# verbose_name在admin站点中会用到mobile = models.CharField(max_length=11, unique=True, verbose_name="手机号", help_text='手机号',error_messages={'unique': "此手机号已注册"}  # 指定报错的中文信息)email_active = models.BooleanField(default=False, verbose_name='邮箱验证状态')class Meta:db_table = "tb_users"   # 指明数据库表名verbose_name = "用户"    # 在admin站点中显示的名称verbose_name_plural = verbose_name  # 显示的复数名称def __str__(self):  # 打印对象时调用return self.username

  

在settings.py文件中添加如下配置:

# 自定义用户模型

AUTH_USER_MODEL = 'users.Users'


这样就为 django 指定用自己的用户模型


 

 

 查看数据库:

 

 

 

在这个项目中,不需要邮箱地址, 而在继承了这个类后,有个邮箱 地址的字段,有手机号字段,

所以要对模型进行修改,

 

继承并重写  UserManager

 

from django.db import models
from django.contrib.auth.models import AbstractUser,UserManager as _UserManager
#
# # Create your models here.class UserManager(_UserManager):'''重写 UserManager'''def create_superuser(self, username, password, email=None, **extra_fields):super(UserManager, self).create_superuser(username=password,password=password, email=email, **extra_fields)class Users(AbstractUser):'''在 AbstractUser 之上添加手机号字段'''objects = UserManager()REQUIRED_FIELDS = ['mobile']mobile = models.CharField(max_length=11, unique=True, verbose_name="手机号", help_text='手机号',error_messages={'unique': "此手机号已注册"}  # 指定报错的中文信息)email_active = models.BooleanField(default=False, verbose_name='邮箱验证状态')# 内部类class Meta:db_table = "tb_users"                           # 指明数据库表名verbose_name = "用户"                             # 在admin站点中显示的名称verbose_name_plural = verbose_name                 # 显示的复数名称def __str__(self):  # 打印对象时调用return self.username

  

 

尝试 进行创建超级用户操作:  createsuperuser

 

补充:

对 base.html 文件中的路径对应修改:

 

 

转载于:.html

更多推荐

潭州课堂25班:Ph201805201 django 项目 第七课 用户模型设计 (课堂笔记

本文发布于:2024-02-14 00:03:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1761280.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:课堂   模型   笔记   项目   用户

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!