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的认证系统包含了身份验证和权限管理两部分.简单地说 ...
随机推荐
- 纪中20日c组模拟赛
赛后感想 多写点东西总是好的,但是在最后,算法就不要改动了(就这样我少了10分) 题解 T1 2121. 简单游戏 T2 2122. 幸运票
- KD-Tree 学习笔记
这是一篇又长又烂的学习笔记,请做好及时退出的准备. KD-Tree 的复杂度大概是 \(O(n^{1-\frac{1}{k}})\) \(k\) 是维度 由于网上找不到靠谱的证明,咕了. 会证明之后再 ...
- 安装MySQL被提示缺少msvcr120.dll,msvcp120.dll或提示0xc00007b错误
踩坑经历: 我的电脑昨天重装了win10系统,在安装MySQL时被提示缺少msvcr120.dll,我去下载msvcr120.dll后放入System32中,又被提示缺少msvcp120.dll,然后 ...
- linux安装docker和docker compose
运行 sudo -s 切换到root用户. 1.卸载旧版本Docker(如果系统之前没安装过Docker,可以跳过): yum remove docker \ docker-client \ dock ...
- TCP 与 UDP 浅谈
TCP与UDP区别总结:1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2.TCP提供可靠的服务.也就是说,通过TCP连接传送的数据,无差错,不丢失,不重 ...
- Truck History POJ - 1789 板子题
#include<iostream> #include<cstring> #include<algorithm> #include<stdio.h> u ...
- FHQTreap刷题记录
分裂:如图,按值分裂,u比k大则切黄色的一
- Docker最全教程——从理论到实战(十九)
Python目前是流行度增长最快的主流编程语言,也是第二大最受开发者喜爱的语言(参考Stack Overflow 2019开发者调查报告发布).笔者建议.NET.Java开发人员可以将Python发展 ...
- Flutter简易顶部导航
因为在AppBar的bottom参数中返回TabBar在平板模式的对齐模式是居中的且不可调整,所有将TabBar在title中返回 import 'package:flutter/material.d ...
- 浅谈C#委托的用法-delegate[转]
一.委托的概念 委托和类一样是一种用户自定义类型,它存储的就是一系列具有相同签名和返回类型的方法的地址,调用委托的时候,它所包含的所有方法都会被执行. 借用百度上的一句话概括:委托是一个类,它定义了方 ...