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

Django ORM 定义模型

提示:定义模型字段的类型

文章目录

  • 一、字段类型
  • 二、字段属性
  • 三、元信息


一、字段类型

  1. 常用字段
字段名描述备注
AutoFieldint 自增必填参数 primary_key=True,无该字段时,django自动创建一个 BigAutoField,一个model不能有两个AutoField字段(不建议手动指定主键)
BooleanField布尔值为True,False
NullBooleanField布尔值为Null,True,False 已弃用(BooleanField(null=True))
CharField字符串必须提供max_length参数
TextField文本
IntegerField整型SmallIntegerField(短整型),BigIntegerField(长整型),PositiveIntegerField(正整型),PositiveSmallIntegerField(短正整型)
DecimalField10进制浮点数max_digits表示总位数,decimal_places表示小数
FloatField浮点数
DateField日期(YYYY-MM-DD)auto_now:每次修改时修改为当前日期时间。auto_now_add:新创建对象时自动添加当前日期时间(相当于Python中的datetime.date的实例)
DatetimeField日期(YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ])相当于Python中的datetime.datetime实例
FileField文件字段数据库本质为路径保存
OneToOneField关系字段用于定义一对一关系
ForeignKey关系字段用来定义多对一关系
ManyToManyField关系字段用于定义多对多关系

二、字段属性

参数描述备注
nullTrue:允许存储 NULL 值默认False(控制数据库存储,是否允许存储 NULL 值)
blankTrue:允许为空字符串默认False(控制表单验证,是否允许在表单中留空)
db_column字段名称通常不需要手动指定
db_indexTrue:创建索引默认False
default默认值
primary_keyTrue:主键每个模型只能有一个字段设置 primary_key=True,通常 Django 会自动添加 AutoField 或 BigAutoField 作为主键
uniqueTrue:唯一值默认False
max_length最大长度
max_digits浮点型最大长度
decimal_places小数点位数
auto_now获取的是当前时间
choices序列STATUS_CHOICES = [(0, ‘java’), (1, ‘python’)] (在表单中会显示为下拉框)
help_text帮助文本表单中显示的帮助文本,用于提供字段的说明

三、元信息

ORM对应的类里面包含另一个Meta类,而Meta类封装了一些数据库的信息。主要字段如下:

参数描述
db_tableORM在数据库中的表名默认是 app_类名,可以通过db_table可以重写表名
index_together联合索引
unique_together联合唯一索引
ordering字段排序(设置该属性,查询到的结果才可以被reverse())
http://www.xdnf.cn/news/74.html

相关文章:

  • 【html】a标签target属性以及扩展应用
  • 2025TGCTF Web WP复现
  • 2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析
  • 多线程编程的简单案例——单例模式[多线程编程篇(3)]
  • 前端零基础入门到上班:Day7——表单系统实战全解析
  • 文献总结:NIPS2023——车路协同自动驾驶感知中的时间对齐(FFNet)
  • node.js 基础
  • 9.Rust+Axum 测试驱动开发与性能优化全攻略
  • 韩媒专访CertiK创始人顾荣辉:黑客攻击激增300%,安全优先的破局之路
  • 在Vmware15(虚拟机免费) 中安装纯净win10详细过程
  • Google Gemini 系列AI模型 的详细解析,涵盖其技术特点、版本差异、应用场景及优势
  • 网络417 路由转发2 防火墙
  • 2025第十七届“华中杯”大学生数学建模挑战赛题目B 题 校园共享单车的调度与维护问题完整成品正文33页(不含附录)文章思路 模型 代码 结果分享
  • 部署若依前后端分离
  • Qt 信号与槽复习
  • [数据结构]哈希表
  • PTA:模拟EXCEL排序
  • 【C++面向对象】封装(下):探索C++运算符重载设计精髓
  • 【软考-系统架构设计师】设计模式三大类型解析
  • 简单接口工具(ApiCraft-Web)
  • 从0开始掌握动态规划
  • 目标分割模型优化自身参数都是梯度下降算法吗?
  • 基于Django框架的图书索引智能排序系统设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
  • 昆仑万维开源 32B 推理模型 Skywork-OR1:超越 DeepSeek-R1
  • 医疗设备预测性维护合规架构:从法规遵循到技术实现的深度解析
  • c++:智能指针
  • RT-Thread学习笔记(一)
  • 快速迭代收缩-阈值算法(FISTA)
  • 第十七届“华中杯”B 题校园共享单车的调度与维护问题分析
  • Sentinel源码—4.FlowSlot实现流控的原理一