当前位置: 首页 > news >正文

Django创建模型

1、根据创建好应用模块

python manage.py startapp tests

 2、在models文件里创建模型

from django.db import modelsfrom book.models import User# Create your models here.
class Tests(models.Model):STATUS_CHOICES = ((0, '启用'),(1, '停用'),# 更多状态...)add_time = models.DateTimeField(auto_now_add=True, verbose_name='添加时间')update_time = models.DateTimeField(auto_now=True, verbose_name='更改时间')status = models.BooleanField(choices=STATUS_CHOICES, default=0, verbose_name='状态')name = models.CharField(max_length=100, verbose_name='标题')content = models.TextField(verbose_name='内容')# 会自动创建author_id字段 这是处于同一个app模块下面 null=True 允许为空# 一对多的关联author = models.ForeignKey(User, on_delete=models.CASCADE, null=True, verbose_name='作者')# def __str__(self):#     return self.name  # 自定义MainModel对象的字符串表示形式class Meta:verbose_name = '文章'verbose_name_plural = verbose_name# CASCADE: 当主表中的记录被删除时,从表中所有引用该主键的记录也会被自动删除。这是级联删除的概念,确保了数据库的完整性,避免了悬挂的外键# PROTECT: 当从表中存在依赖于主表的记录时,禁止删除主表中的相关记录。这可以防止意外删除会导致从表中出现悬挂外键的情况。# SET_NULL: 当主表中的记录被删除时,将从表中所有引用该主键的外键字段设置为NULL。但是,这要求外键字段允许NULL值。# SET_DEFAULT: 将外键字段设置为其默认值。这同样要求字段定义了默认值。# DO_NOTHING: 不采取任何行动,如果从表中有记录引用了要删除的主键,则会抛出一个完整性错误。## 如果不是则需要加上app名称.模型# author = models.ForeignKey('home.User', on_delete=models.CASCADE)# 如果外键则是自身的话,self或者本身 Article# author = models.ForeignKey('self', on_delete=models.CASCADE,null=True)def to_dict(self):return {"id": self.id,"name": self.name,"content": self.content,"author": self.author.name,"author_id": self.author.id,}

3、将创建好的模型结构,生成表

#运行所有的
python manage.py makemigrations
python manage.py migrate#运行应用模块
python manage.py makemigrations tests
python manage.py migrate tests

如果报这个错了,那就意味着需要在配置文件里注册你的应用模块 

 


再次运行该命令,则会在迁移目录下生成文件

 运行命令,将迁移文件,生成表

python manage.py migrate tests

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 从零开始学数据结构系列之第六章《排序简介》
  • 三维坐标变换
  • linux c++ 通信架构 笔记(14) 第三章 Nginx 开发初步:守护进程的信号使用,介绍 nginx 的选项与信号,后台进程与守护进程的区别
  • websocket 和sip 在协议层面有哪些区别,为什么要各自这样设置协议
  • redis的事务与管道有什么不同?
  • Vscode中搭建ABAP开发环境
  • 开源的 Kafka 管理平台
  • C++字符串的常用操作
  • cesium.js 入门到精通(6)
  • vue3.x项目使用高德地图JS API 2.0
  • 如何使用 Vidu Studio 根据照片和提示词生成视频
  • 深入剖析 MQTT 协议:物联网通信的核心力量
  • 【服务器第一期】Xshell、Xftp下载及连接
  • 无人机巡检:突破传统局限,引领智能监测新时代
  • Js中call、apply和bind的区别
  • Cumulo 的 ClojureScript 模块已经成型
  • docker python 配置
  • in typeof instanceof ===这些运算符有什么作用
  • JAVA_NIO系列——Channel和Buffer详解
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Vim 折腾记
  • 阿里研究院入选中国企业智库系统影响力榜
  • 读懂package.json -- 依赖管理
  • 跨域
  • 力扣(LeetCode)965
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 为视图添加丝滑的水波纹
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 转载:[译] 内容加速黑科技趣谈
  • Hibernate主键生成策略及选择
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​ssh免密码登录设置及问题总结
  • #HarmonyOS:基础语法
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (1)Nginx简介和安装教程
  • (Java数据结构)ArrayList
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (十一)手动添加用户和文件的特殊权限
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • ./configure、make、make install 命令
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET : 在VS2008中计算代码度量值
  • .NET 事件模型教程(二)
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .net专家(高海东的专栏)
  • /tmp目录下出现system-private文件夹解决方法
  • @Validated和@Valid校验参数区别
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [20171101]rman to destination.txt