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.mzph.cn/pingmian/77694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[密码学基础]GB与GM国密标准深度解析:定位、差异与协同发展

[密码学基础]GB与GM国密标准深度解析:定位、差异与协同发展 导语 在国产密码技术自主可控的浪潮下,GB(国家标准)与GM(密码行业标准)共同构建了我国商用密码的技术规范体系。二者在制定主体、法律效力、技术…

Day-1 漏洞攻击实战

实训任务1 漏洞攻击实战一 使用 御剑 得到网站后台地址 数据库登录与日志配置​​ 使用默认密码 root:root 登录phpMyAdmin,执行 SHOW VARIABLES LIKE general% 查看日志状态。 开启日志功能:set global general_log "ON";(配图&…

leetcode 2563. 统计公平数对的数目 中等

给你一个下标从 0 开始、长度为 n 的整数数组 nums &#xff0c;和两个整数 lower 和 upper &#xff0c;返回 公平数对的数目 。 如果 (i, j) 数对满足以下情况&#xff0c;则认为它是一个 公平数对 &#xff1a; 0 < i < j < n&#xff0c;且lower < nums[i] …

011数论——算法备赛

素数筛 给定n, 求2~n内的所有素数 埃氏筛 利用素数的定义&#xff0c; 输出素数2&#xff0c;然后筛掉2的倍数&#xff0c;得 {2,3,5,7,9,11,13&#xff0c;…}输出素数3&#xff0c;然后筛掉3的倍数&#xff0c;得 {2,3,5,7,11,13&#xff0c;…} 继续上述步骤&#xff0…

算法之贪心算法

贪心算法 贪心算法核心思想常见应用场景典型案例案例一&#xff1a;找零问题案例二&#xff1a;活动选择问题案例三&#xff1a;货仓选址问题 贪心算法的应用详解霍夫曼编码最小生成树Dijkstra最短路径算法 总结 贪心算法 核心思想 贪心算法&#xff08;Greedy Algorithm&…

英码科技与泊川软件,携手加速AI与嵌入式系统融合创新

2025年4月15日&#xff0c;广州英码信息科技有限公司&#xff08;以下简称“英码科技”&#xff09;与广州泊川软件技术有限公司&#xff08;以下简称“泊川软件”&#xff09; 正式签署战略合作框架协议。此次合作将充分发挥双方在AI计算硬件与嵌入式操作系统领域的技术优势&a…

Flowable7.x学习笔记(九)部署 BPMN XML 流程

前言 到本篇为止&#xff0c;我们已经完成了流程定义以及其 BPMN XML 本身的查询和新增功能&#xff0c;那我们有有了XML之后就可以开始着手研究实现 Flowable7对流程的各种操作了&#xff0c;比如部署&#xff0c;挂起&#xff0c;发起等等。 首先第一步&#xff0c;我们本篇文…

electron 渲染进程按钮创建新window,报BrowserWindow is not a constructor错误;

在 Electron 中&#xff0c;有主进程和渲染进程 主进程&#xff1a;在Node.js环境中运行—意味着能够使用require模块并使用所有Node.js API 渲染进程&#xff1a;每个electron应用都会为每个打开的BrowserWindow&#xff08;与每个网页嵌入&#xff09;生成一个单独的渲染器进…

深入规划 Elasticsearch 索引:策略与实践

一、Elasticsearch 索引概述 &#xff08;一&#xff09;索引基本概念 Elasticsearch 是一个分布式、高性能的全文搜索引擎&#xff0c;其核心概念之一便是索引。索引本质上是一个存储文档的逻辑容器&#xff0c;它使得数据能够在高效的检索机制下被查询到。当我们对文档进行…

llamafactory的包安装

cuda版本12.1&#xff0c;python版本3.10&#xff0c;torch版本2.4.0&#xff0c;几个关键包版本如下&#xff1a; torch2.4.0cu121 transformers4.48.3 triton3.0.0 flash-attn2.7.1.post4 xformers0.0.27.post2 vllm0.6.3.post1 vllm-flash-attn2.6.1 unsloth2025.3.18 unsl…

Redis专题

前言 Redis的各种思想跟机组Cache和操作系统对进程的管理非常类似&#xff01; 一&#xff1a;看到你的简历上写了你的项目里面用到了redis&#xff0c;为啥用redis&#xff1f; 因为传统的关系型数据库如Mysql,已经不能适用所有的场景&#xff0c;比如秒杀的库存扣减&#xff…

【Rust 精进之路之第7篇-函数之道】定义、调用与参数传递:构建代码的基本单元

系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 作者: 码觉客 发布日期: 2025-04-20 引言:封装逻辑,代码复用的基石 在之前的文章中,我们已经探索了 Rust 如何处理数据(变量、标量类型、复合类型)以及如何控制程序的执行流程(if/else、循环)。这些构成了编写简…

文件有几十个T,需要做rag,用ragFlow能否快速落地呢?

一、RAGFlow的优势 1、RAGFlow处理大规模数据性能&#xff1a; &#xff08;1&#xff09;、RAGFlow支持分布式索引构建&#xff0c;采用分片技术&#xff0c;能够处理TB级数据。 &#xff08;2&#xff09;、它结合向量搜索和关键词搜索&#xff0c;提高检索效率。 &#xf…

安卓的桌面 launcher是什么

安卓的桌面Launcher是一种安卓应用程序&#xff0c;它主要负责管理和展示手机主屏幕的界面以及相关功能&#xff0c;为用户提供与设备交互的主要入口。以下是其详细介绍&#xff1a; 功能 主屏幕管理&#xff1a;用户可以在主屏幕上添加、删除和排列各种应用程序图标、小部件…

【学习笔记】计算机网络(九)—— 无线网络和移动网络

第9章 无线网络和移动网络 文章目录 第9章 无线网络和移动网络9.1 无线局域网WLAN9.1.1 无线局域网的组成9.1.2 802.11局域网的物理层9.1.3 802.11局域网的MAC层协议CSMA 协议CSMA/CD 协议 - 总线型 - 半双工CSMA/CA 协议 9.1.4 802.11局域网的MAC帧 9.2 无线个人区域网WPAN9.3…

无线网络入侵检测系统实战 | 基于React+Python的可视化安全平台开发详解

随着无线网络的普及&#xff0c;网络攻击风险也日益严峻。本项目旨在构建一个实时监测、智能识别、高效防护的无线网络安全平台&#xff0c;通过结合前后端技术与安全算法&#xff0c;实现对常见攻击行为的有效监控和防御。 一、项目简介与功能目的 本系统是一款基于 React 前…

速通FlinkCDC3.0

1.FlinkCDC概述 1.1FlinkCDC是什么&#xff1f; FlinkCDC&#xff08;Flink Change Data Capture&#xff09;是一个用于实时捕获数据库变更日志的工具&#xff0c;它可以将数据库的变更实时同步到ApacheFlink系统中。 1.2 FlinkCDC的三个版本&#xff1f; 1.x 这个版本的Fli…

B+树节点与插入操作

B树节点与插入操作 设计B树节点 在设计B树的数据结构时&#xff0c;我们首先需要定义节点的格式&#xff0c;这将帮助我们理解如何进行插入、删除以及分裂和合并操作。以下是对B树节点设计的详细说明。 节点格式概述 所有的B树节点大小相同&#xff0c;这是为了后续使用自由…

C# 检查字符串是否包含在另一个字符串中

string shopList "我是大浪,你的小狼"; this.ShopId"你的小狼"; bool existsShopId false; if (!string.IsNullOrEmpty(shopList)) {existsShopId shopList.Split(,).Any(part > part.Trim() this.ShopId); }检查 goodsIdSet 中的每个元素是否都在 …

珈和科技遥感赋能农业保险创新 入选省级卫星应用示范标杆

为促进空天信息与数字经济深度融合&#xff0c;拓展卫星数据应用场景价值&#xff0c;提升卫星数据应用效能和用户体验&#xff0c;加速卫星遥感技术向民生领域转化应用&#xff0c;近日&#xff0c;湖北省国防科工办组织开展了2024年湖北省卫星应用示范项目遴选工作。 经多渠…