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

Django创建数据模型的列的类型和属性

列类型:

AutoField:一个自动增加的整数类型字段。通常用作主键。对应 MySQL 的 AUTO_INCREMENT。
BigAutoField:一个更大的自动增加的整数类型字段,适用于需要更大范围的值的场景。对应 MySQL 的 BIGINT AUTO_INCREMENT。
BooleanField:一个布尔值字段,用 True 或 False 表示。对应 MySQL 的 TINYINT(1)。
CharField:一个字符串字段,可以指定最大长度。对应 MySQL 的 VARCHAR。
TextField:一个长文本字段。对应 MySQL 的 TEXT。
IntegerField:一个整数字段。对应 MySQL 的 INT。
BigIntegerField:一个可以存储更大整数的字段。对应 MySQL 的 BIGINT。
DecimalField:一个定点数字段,可以存储精确的小数。对应 MySQL 的 DECIMAL。
FloatField:一个浮点数字段。对应 MySQL 的 FLOAT。
DateField:一个日期字段,不包含时间。对应 MySQL 的 DATE。
DateTimeField:一个日期和时间字段。对应 MySQL 的 DATETIME。
DurationField:一个存储时间间隔的字段。在数据库中通常存储为 BIGINT,表示秒数。
EmailField:一个用于存储电子邮件地址的字段。实际上是 CharField 的一个子类,具有一个默认的最大长度和验证器。
FileField 和 ImageField:用于存储文件路径的字段,可以上传文件。这些字段在数据库中存储为 VARCHAR,但实际文件存储在文件系统或云存储中。
FilePathField:一个可以从指定目录中选择文件的字段。对应一个路径字符串,存储在 VARCHAR 中。
GenericIPAddressField:一个用于存储 IPv4 或 IPv6 地址的字段。可以指定协议类型(IPv4、IPv6 或 both)。
NullBooleanField:类似于 BooleanField,但允许存储 NULL 值。对应 MySQL 的 TINYINT(1),但允许 NULL。
PositiveIntegerField 和 PositiveSmallIntegerField:仅允许正整数的字段。分别对应 MySQL 的 UNSIGNED INT 和 UNSIGNED SMALLINT。
SlugField:一个用于存储 URL 片段(slug)的字段。实际上是 CharField 的一个子类,具有一个默认的最大长度和验证器。
SmallIntegerField:一个小整数字段。对应 MySQL 的 SMALLINT。
TimeField:一个时间字段,不包含日期。对应 MySQL 的 TIME。
UUIDField:一个用于存储 UUID 的字段。对应 MySQL 的 CHAR(36) 或 BINARY(16)(如果使用数据库特定的 UUID 字段类型)。


Django 模型列属性


null:如果为 True,则允许字段存储 NULL 值。默认为 False。
blank:如果为 True,则允许字段在表单中为空。这通常用于字符串字段,与 null 不同,它不影响数据库层面的值。
default:字段的默认值。可以是一个值或一个可调用对象。
primary_key:如果为 True,则该字段将作为模型的主键。一个模型中只能有一个主键字段。
unique:如果为 True,则该字段的值在数据库中必须是唯一的。
db_index:如果为 True,则为该字段创建数据库索引。这可以提高查询性能,但也会增加写入操作的开销。
db_column:指定该字段在数据库中的列名。如果不指定,Django 会使用字段的名称作为列名。
db_tablespace:指定该字段在数据库中的表空间(如果数据库支持表空间)。
auto_now 和 auto_now_add:这些属性通常用于 DateTimeField 和 DateField。auto_now 会在每次保存对象时自动更新字段的值到当前时间,而 auto_now_add 只会在对象首次创建时设置字段的值为当前时间。
choices:一个由元组组成的列表,用于限制字段的值。每个元组包含两个元素:一个实际存储的值和一个人类可读的名称。
editable:如果为 False,则字段不会在 Django 管理界面中显示或允许编辑。
error_messages:一个字典,用于自定义字段验证失败时显示的错误消息。
help_text:一个字符串,用于在 Django 管理界面中为字段提供额外的帮助文本。
validators:一个验证器列表,用于在字段值保存到数据库之前对其进行验证。
verbose_name:一个字符串,用于在 Django 管理界面中为字段提供一个人类可读的名称。
unique_for_date、unique_for_month 和 unique_for_year:这些属性用于 DateField 或 DateTimeField,以确保字段的值在指定的时间单位内是唯一的。


http://www.kler.cn/a/370280.html

相关文章:

  • STM32-串口-UART-Asynchronous
  • 【面试题】JVM部分[2025/1/13 ~ 2025/1/19]
  • 《keras 3 内卷神经网络》
  • 单片机基础模块学习——定时器
  • mysql之基本常用的语法
  • (7)(7.2) 围栏
  • CV - 图像实例分割开源算法 SAM2(Segment Anything) 视频分割 教程 (2)
  • electron Debian arm64 linux设备打包deb安装包 遇到的fpm问题
  • 基于深度学习算法的动物检测系统(含PyQt+代码+训练数据集)
  • 反编译华为-研究功耗联网监控日志
  • 3.1.4 Hyperspace 的临时映射1
  • Golang | Leetcode Golang题解之第509题斐波那契数
  • HttpServer模块 --- 封装TcpServer支持Http协议
  • 基于neo4j的鸟类百科知识图谱问答系统
  • QT 中彻底解决中文乱码问题的指南
  • appium文本输入的多种形式
  • 使用微信免费的内容安全识别接口,UGC场景开发检测违规内容功能
  • Claude 3.5新模型发布:Sonnet与Haiku双雄登场,助力开发者高效创作
  • python基础(类、实例、属性、方法)
  • vue3 中 props 使用 ts 类型定义复杂类型
  • SVN常用命令
  • Android 下载进度条HorizontalProgressView 基础版
  • Docker 部署MongoDb
  • 【网路原理】——HTTP状态码和Postman使用
  • 【Vscode】设置
  • Unity自定义数组在Inspector窗口的显示方式