当前位置: 首页 > 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
http://www.lryc.cn/news/436522.html

相关文章:

  • 盘点2024年大家都在用的短视频剪辑工具
  • “左侧文字横向”的QTabWidget
  • python学习之字符串操作
  • 第7篇:【系统分析师】计算机网络
  • 无人机培训机构组装调试技术详解
  • ‌汽车的舒适进入功能是什么意思?
  • 杂七杂八-系统环境安装
  • Redis高可用,Redis性能管理
  • React项目中使用发布订阅模式
  • buck boost Ldo 经典模型的默写
  • velero v1.14.1迁移kubernetes集群
  • Qt Model/View之Model
  • 如何在 Vue 3 中使用 Element Plus
  • 【TVM 教程】在 Relay 中使用 Pipeline Executor
  • 使用mingw64 编译 QT开发流程
  • 品读 Java 经典巨著《Effective Java》90条编程法则,第3条:用私有构造器或者枚举类型强化Singleton属性
  • 如何在Flask中处理表单数据
  • 9月12日的学习
  • Java架构师未来篇大模型
  • 11.5.软件系统分析与设计-面向对象的程序设计与实现
  • 中电金信:金融级数字底座“源启”:打造新型数字基础设施 筑牢千行百业数字化转型发展基石
  • IDEA怎么让控制台自动换行
  • 大模型笔记02--基于fastgpt和oneapi构建大模型应用平台
  • linux-用户与权限管理-组管理
  • Day23_0.1基础学习MATLAB学习小技巧总结(23)——句柄图形
  • 同步io和异步io
  • AI基础 L19 Quantifying Uncertainty and Reasoning with Probabilities I 量化不确定性和概率推理
  • C++ 关于时间的轮子
  • 阿里达摩院:FunASR - onnxruntime 部署
  • SpringMvc注解