用户模块创建,app user

(base) G:\dailyfresh>python manage.py startapp user

用户应用的注册

在配置中添加应用的名称即可

回顾要设计的模型类

用户表与地址表

一对多对应关系

用户表为一方

地址表为多方

用户模型类的设计

复用django自带的用户认证的体系

因为django自带了一些用户的字段,我们直接继承复用就好

from django.db import models
from django.contrib.auth.models import AbstractUser
from db.base_model import BaseModel
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
from django.conf import settingsclass User(AbstractUser, BaseModel):"""用户模型类"""def generate_active_token(self):"""生成用户签名字符串"""serializer = Serializer(settings.SECRET_KEY, 3600)info = {'confirm': self.id}token = serializer.dump(info)return token.decode()class Meta:db_table = 'df_user'verbose_name = '用户'verbose_name_plural = verbose_name

class Meta , 用于设置数据表的相关内容,详细的配置写在该类的类属性中
db_table, 类属性,用于定义当前的模型类User在迁移生成数据表时,以什么表名来显示
verbose_name , 用于在后台管理中,以什么名称来显示这个表

留意报错情况

生成迁移文件时,会有报错情况发生


(base) G:\dailyfresh>python manage.py makemigrations
SystemCheckError: System check identified some issues:ERRORS:
auth.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse ac
cessor for 'User.groups'.HINT: Add or change a related_name argument to the definition for 'User.groups' or'User.groups'.
auth.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' cla
shes with reverse accessor for 'User.user_permissions'.HINT: Add or change a related_name argument to the definition for 'User.user_permi
ssions' or 'User.user_permissions'.
user.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse ac
cessor for 'User.groups'.HINT: Add or change a related_name argument to the definition for 'User.groups' or

解决报错,配置中指定用户认证的

AUTH_USER_MODEL = "user.User"

解决好后再次生成迁移文件

问题解决

不再报错

小结,用户模型类的操作,主要两步

》一,用户模型类

1,用户模型类继承,django的抽象用户类

2,继承自定义的基类

》二,配置

告诉django用户表用哪个表

迁移操作

》迁移前,数据库中

》生成迁移文件

(base) G:\dailyfresh>python manage.py makemigrations

》迁移数据,生成数据表

命令

(base) G:\dailyfresh>python manage.py migrate

效果


(base) G:\dailyfresh>python manage.py migrate
Operations to perform:Apply all migrations: admin, auth, contenttypes, sessions, user
Running migrations:Applying contenttypes.0001_initial... OKApplying contenttypes.0002_remove_content_type_name... OKApplying auth.0001_initial... OKApplying auth.0002_alter_permission_name_max_length... OKApplying auth.0003_alter_user_email_max_length... OKApplying auth.0004_alter_user_username_opts... OKApplying auth.0005_alter_user_last_login_null... OKApplying auth.0006_require_contenttypes_0002... OKApplying auth.0007_alter_validators_add_error_messages... OKApplying auth.0008_alter_user_username_max_length... OKApplying auth.0009_alter_user_last_name_max_length... OKApplying auth.0010_alter_group_name_max_length... OKApplying auth.0011_update_proxy_permissions... OKApplying user.0001_initial... OKApplying admin.0001_initial... OKApplying admin.0002_logentry_remove_auto_add... OKApplying admin.0003_logentry_add_action_flag_choices... OKApplying sessions.0001_initial... OK(base) G:\dailyfresh>

》迁移后,数据表中

》用户表的表结构如下

地址模型类的定义

》先演示一个错误的定义方式

这是django 1版本的定义方式

会报如下错误:

  File "G:\dailyfresh\user\models.py", line 23, in <module>class Address(BaseModel):File "G:\dailyfresh\user\models.py", line 25, in Addressuser = models.ForeignKey("User", verbose_name="所属帐户")
TypeError: __init__() missing 1 required positional argument: 'on_delete'

正解,外键字段需要加上 on_delete

》定义地址模型类


class Address(BaseModel):"""地址模型类"""user = models.ForeignKey("User", verbose_name="所属帐户", on_delete=models.CASCADE)receiver = models.CharField(max_length=20, verbose_name="收件人", )addr = models.CharField(max_length=256, verbose_name="收货地址")zip_code = models.CharField(max_length=6, null=True, verbose_name="邮政编码")phone = models.CharField(max_length=11, verbose_name="联系电话")is_default = models.BooleanField(default=False, verbose_name="是否默认")class Meta:db_table = "df_address"verbose_name = "地址"verbose_name_plural = verbose_name

》生成迁移文件

不会再报错

》迁移数据

》最终地址表结果

。。。

用户模块的表到此创建完成

dj鲜生-03-用户模块的创建与模型类的创建相关推荐

  1. dj鲜生-06-其它模块以应用方式生成并归位

    快速创建其它的应用 (base) G:\dailyfresh>python manage.py makemigrations No changes detected(base) G:\daily ...

  2. dj鲜生-28-登陆验证父类的使用-Mixin类的定义

    操作小结 创建一个目录和一个文件 文件中写一个登陆验证的mixin类 from django.contrib.auth.decorators import login_required class L ...

  3. dj鲜生-36-商品应用-其它模型类的创建-完善goods应用的数据表

    用户模块处理的差不多了 准备商品模块 总共七张表,要做模型类 原始models 就是一个空的 开始弄进去代码 开始打代码 商品模型类的定义 from django.db import models f ...

  4. dj鲜生-34-存档-用户中心地址页重复查询默认地址的优化-利用自定义模型管理器的方法来实现

    复习模型类管理器 django-模型类管理器 - pyhui的python全栈技术博客 - CSDN博客 https://blog.csdn.net/ifubing/article/details/1 ...

  5. dj鲜生-02-抽象基类的创建

    db目录创建,用于存放抽象出来的基类 新建一个目录和文件 db目录,用于存放模型类的相关扩展的模块 base_model.py,作为其它模型类的抽象基类 抽象基类的完成 代码如下: from djan ...

  6. dj鲜生-37-order应用-模型类创建

    主要两张表 进入到订单应用 初始也是空的 订单模型类 一个注意点 如果我的字段,要关联另一个应用的模型类,见框框 应用名.模型类名 用这种方式来跨应用关联 订单商品模型类 class OrderGoo ...

  7. dj鲜生-38-项目上线简介-从本地小项目到云服务的调试

    小结 项目上线要做的事情有: 代码传到linux虚拟机上 准备相关的运环境 配置好ip与端口 让程序跑起来 项目上线,就是把windows上的代码,拷备到linux上,让代码跑起来 在win上跑代码的 ...

  8. dj鲜生-08-用户注册的功能-上-实现注册的主逻辑和其本的验证功能-伴随着调试

    操作页面: 注册页 http://127.0.0.1:8000/user/register/ 提交表单要考虑的内容 表单标签添加属性 操作以前 表单提交方式明确 提交去向 csrftoken防护 关注 ...

  9. dj鲜生-01-新建项目-配置数据库

    静态页面地址 静态文件资源下载: https://cloud.189.cn/t/U7vAjafAfAVb (鲜生电商-静态页面) 创建一个项目 pycharm打开项目 数据库的准备 新建一个数据库 & ...

最新文章

  1. 2022-2028年中国演出市场深度调研与投资可行性报告
  2. Java Lambda表达式forEach无法跳出循环的解决思路
  3. redis储存List类型数据
  4. 我的世界linux开服权限不足,我的世界路由器开服怎么获得超级管理员权限
  5. PHP中4个包含文件方法的差异
  6. 如果不交社保,每月都存500元,存15年够自己养老用吗?
  7. 机器学习 | 算法笔记- 决策树(Decision Tree)
  8. 中国市级行政单位高德地图经纬度坐标
  9. 计算机c盘满了怎么搬家,c盘占满了,怎么清理
  10. H264数据格式解析
  11. Sublime格式化代码快捷键
  12. Unity - Timeline 之 Activation track properties(激活轨道的属性)
  13. SpringSecurity 退出登录
  14. esp8266智能开关灯制作教程
  15. 来成都旅游,千万不要做的22件事!
  16. python图像平移_仿射变换——图像平移 原理讲解及python实现
  17. VR全景创业必看,热门功能帮助商家顺利出圈
  18. RHEL 7 常用命令
  19. 匈牙利命名法(Hungarian)
  20. Triplet Loss 实现

热门文章

  1. DreamweaverCS6搭建配置php本地站点(图文教程)- 教程篇
  2. phpcmsV9 数据库配置文件(查找、修改)
  3. 小c下载样式插件Xiaocstyle适用于emlog系统
  4. ThinkPHP Bootstrap简约自适应网址导航网站源码
  5. java super.getclass_Java Class 类 getSuperClass()方法及示例
  6. wordpress主题-响应式CUI2.0翠竹林博客主题wordpress模板分享
  7. 织梦文章批量更新软件
  8. 蓝奏云外链批量下载软件
  9. 计算机桌面有黑边怎么调整,电脑屏幕旁边有黑色框如何恢复_电脑两边黑边怎么还原-win7之家...
  10. vant自动按需引入组件 (推荐)