0004 继承django系统用户表
1 创建基础模型
在本项目中,所有表都有两个自动产生的完全相同的字段,即创建时间和更新时间,因此,可以创建一个基础模型,让所有的表都来继承这个模型。
找到工程目录下的PublicMethod目录,创建一个名为:BaseModel.py的文件,内容如下:
from django.db import models
class BaseModel(models.Model):
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间', help_text='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间', help_text='更新时间')
class Meta:
# 说明这个类是一个抽象模型类,在迁移的时候不会生成表
abstract = True
2 创建Django授权用户表
Django本身包含一个用户表,我们需要在该表中增加一些字段。找到OrgsAndUsers目录下的models.py文件,内容如下:
from django.db import models
from django.contrib.auth.models import AbstractUser
from PublicMethod.BaseModel import BaseModel
class UserInfo(AbstractUser, BaseModel):
nickname = models.CharField(max_length=200, verbose_name='用户昵称', null=True, blank=True, help_text='用户昵称')
openid = models.CharField(max_length=100, verbose_name='OpenID', null=True, blank=True, help_text='OpenID')
mobile = models.CharField(max_length=20, verbose_name='手机号', help_text='手机号') # 手机是整个平台的通行证
identity = models.CharField(max_length=30, verbose_name='身份证号', default='', help_text='身份证号')
weixin = models.CharField(max_length=50, verbose_name='微信号', null=True, blank=True, help_text='微信号')
sexchoice = (
(1, '男'),
(2, '女'),
)
sex = models.IntegerField(choices=sexchoice, verbose_name='性别', null=True, blank=True, help_text='性别')
province = models.CharField(max_length=30, verbose_name='省', null=True, blank=True, help_text='省')
language = models.CharField(max_length=100, verbose_name='语言', null=True, blank=True, help_text='语言')
city = models.CharField(max_length=30, verbose_name='市', null=True, blank=True, help_text='市')
country = models.CharField(max_length=30, verbose_name='县(县级市)', null=True, blank=True, help_text='县(县级市)')
headimgurl = models.CharField(max_length=300, verbose_name='头像路径', null=True, blank=True, help_text='头像路径')
unionid = models.CharField(max_length=100, verbose_name='unionid', null=True, blank=True, help_text='unionid')
subscribe_scene = models.CharField(max_length=50, verbose_name='用户关注的渠道来源', null=True, blank=True,
help_text='用户关注的渠道来源')
class Meta:
db_table = 'UserInfo'
verbose_name_plural = '001 用户信息表'
3 在settings.py文件中指定Django认证系统所使用的模型类,在最后面增加以下代码
# 指定Django认证系统所使用的模型类 AUTH_USER_MODEL = 'OrgsAndUsers.UserInfo'
4 执行数据迁移
在PyCharm的Terminal下执行以下两个命令,创建数据表。
(venv) D:\DjangoDevelopment\yunsoft\projects\TongHeng2>python manage.py makemigrations
Migrations for 'OrgsAndUsers':
Applications\OrgsAndUsers\migrations\0001_initial.py
- Create model UserInfo
(venv) D:\DjangoDevelopment\yunsoft\projects\TongHeng2>python manage.py migrate
Operations to perform:
Apply all migrations: OrgsAndUsers, admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0001_initial... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying OrgsAndUsers.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying sessions.0001_initial... OK
(venv) D:\DjangoDevelopment\yunsoft\projects\TongHeng2>
5 在数据库中查看数据表
0004 继承django系统用户表的更多相关文章
- 第四百零六节,自定义用户表类来继承Django的用户表类,
第四百零六节,自定义用户表类来继承Django的用户表类, models.py from django.db import models # Create your models here. from ...
- JEECG新建用户不用系统用户表的实现
首先新增组织机构 和 角色: -- 新增 组织机构 INSERT INTO `t_s_depart` VALUES ('dept001', '你所在的机构', '你所在的机构的描述', null, ' ...
- django 自定义用户表替换系统默认表
首先新建一个users应用,编写这个应用的models类. from django.contrib.auth.models import AbstractUser class UserProfile( ...
- django之用户表的继承
有这样一个场景,之前已经设计好了用户的信息表,但是再设计另外一个业务表的时候,信息有点重复,如何重新设计呢? 可以采用表的继承,让一个表作为基类,业务表就可以继承它 要注意以下几点 1 作为基类的表使 ...
- django自定义用户表
django中已经给我生成默认的User表,其中的字段已经可以满足我们的日常需求. 但有时候,我们需要更多的字段,我们就可以自定义.来替换django自带的User表. #models.py from ...
- 使用django的用户表进行登录管理
改写用户基本表 ... AUTH_USER_MODEL = 'appjwt.User' ... setting.py from django.db import models from django. ...
- sqlserver 获取系统用户表结构信息
SELECT (case when a.colorder=1 then d.name else null end) 表名, a.colorder 字段序号,a.name 字段名, (case when ...
- 即时聊天IM之二 openfire 整合现有系统用户
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 综述: ...
- Django Authentication 用户认证系统
一. Django的认证系统 Django自带一个用户认证系统,用于处理用户账户.群组.许可和基于cookie的用户会话. 1.1 概览 Django的认证系统包含了身份验证和权限管理两部分.简单地说 ...
随机推荐
- 电信IOT平台固件升级
1 离线签名 注意事项:特别重要,被坑了好久 A 将差分文件.bin格式的压缩成.zip 再进行签名 B 不能再中文目录下 否则,会出现校验失败 记住私钥 2 上传公钥 3 上传固件包 4 ...
- R语言常用的矩阵操作
R语言是一门非常方便的数据分析语言,它内置了许多处理矩阵的方法.下面列出一些常用的矩阵操作方法示例. 矩阵的生成 > mat <- matrix(:, ncol = , nrow = , ...
- NODEJS 搭建本地文件服务器
npm install anywhere --g 然后再任意目录位置运行 anywhere 80 就可以开启服务器.
- 证明task线程是来源于线程池的,线程重用
1.线程池是单例的,全局唯一的,设置线程池最大活跃线程数是5,设置后,允许同时并发的Task只有5个,我们开启100个task去做任务,从最后的输出结果看到,虽然开启了100个task,但是线程id始 ...
- IO流学习之综合运用(文件复制)
通过File.字节流.字节流缓冲区实现文件复制 需求: 1.用File类读取指定文件File下的所有文件(包括Copy文件夹内的所有文件) 2.将所有文件复制到指定文件FileCopy夹下 需求分析: ...
- 【优惠&正版】超级硬盘数据恢复软件(SuperRecovery)7.0正版注册码(39元一机终身授权,支持最新版)
[优惠&正版]超级硬盘数据恢复软件(SuperRecovery)7.0正版注册码(39元一机终身授权,支持最新版) 这个软件的数据恢复效果非常好,在全世界数据恢复软件内是数一数二的. 下载地址 ...
- 解决Mac无法写入U盘问题
注:本文出自博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 本文源链接:https://www.cnblogs.com/chloneda/p/upan-to- ...
- gulp常用插件之gulp-rev-collector使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-collector这是一款根据gulp-rev生成的manifest.json文件中的映射, 去替换文件名称, 也可以替换路径. ...
- html5的页面在IOS中,按钮 变成圆角怎么办?
在button的css 中添加: -webkit-appearance: none; border: none; border-radius: 0; ok 的啦 文章来源:刘俊 ...
- exe 发布为服务
参考连接: https://www.cnblogs.com/liuxiaoji/p/8016261.html 1.有两个文件 srvany.exe,instsrv.exe 然后放到指定的文件下下: 2 ...