Django `models.Field` 所有常见安装参数的完整清单与说明表

news/2025/11/8 21:06:42/文章来源:https://www.cnblogs.com/gccbuaa/p/19203055

一、让字段可以为空

在 Django 的 models.py 中,可以通过设置字段的两个参数来控制是否允许为空:

参数作用范围说明
null=True数据库层面数据库字段允许保存 NULL
blank=True表单验证层面表单提交时允许为空(不强制校验)

✅ 示例:允许字段为空

class User(models.Model):
nickname = models.CharField(max_length=50, null=True, blank=True)
  • null=True → 在数据库中该字段可以为 NULL
  • blank=True → 在 Django 表单(包括 admin)中该字段可以留空

说明:

  • 字符串字段(CharField、TextField) 通常推荐:blank=True, null=False
    (即空字符串 "" 代替 NULL
  • 数字、日期等字段 一般用 null=True 表示无值。

⚙️ 二、Django Model 字段可配置项全集(通用参数)

每个 Django 字段(例如 CharField, IntegerField 等)都继承自 Field 基类,大多支持以下配置:

参数名类型默认值说明
nullboolFalse数据库是否允许为 NULL
blankboolFalse表单/验证是否允许为空
defaultanyNone字段默认值
primary_keyboolFalse是否为主键(会自动加索引)
uniqueboolFalse是否唯一
db_indexboolFalse是否建立数据库索引
db_columnstrNone指定数据库中的字段名
db_tablespacestrNone指定索引表空间(较少用)
choicesiterableNone下拉选择的固定值(用于表单)
verbose_namestrNone字段的人类可读名称
help_textstr“”帮助提示信息(Admin 显示)
editableboolTrue是否可在表单或 Admin 中编辑
error_messagesdictNone自定义验证错误提示
validatorslist[]自定义验证器函数列表
auto_createdboolFalse系统内部标识(通常不手动设)
unique_for_datestrNone限制同一天内唯一(针对日期字段)
unique_for_monthstrNone限制同月内唯一
unique_for_yearstrNone限制同年内唯一

三、特定字段的额外参数

1️⃣ CharField

参数说明
max_length字符串最大长度(必须)

2️⃣ TextField

无额外参数(适合大文本)

3️⃣ IntegerField / FloatField / DecimalField

参数说明
max_digits总位数(仅 DecimalField
decimal_places小数位数(仅 DecimalField

4️⃣ DateTimeField / DateField

参数说明
auto_now每次保存对象时自动更新为当前时间
auto_now_add仅在第一次创建时设置时间

5️⃣ BooleanField

参数说明
默认不允许 NULL,如需三态逻辑用 NullBooleanField(Django 4.0 后用 BooleanField(null=True) 代替)

6️⃣ ForeignKey

参数说明
to关联的模型类
on_delete删除级联方式(必填,如 models.CASCADE
related_name反向引用名
related_query_name反向查询前缀
limit_choices_to限制可选关联对象
db_constraint是否创建外键约束(默认 True)

7️⃣ ManyToManyField

参数说明
to关联模型
related_name反向引用名
through自定义中间表
through_fields指定中间表关联字段
symmetrical是否对称关系(默认 True)

8️⃣ FileField / ImageField

参数说明
upload_to上传文件的路径或函数
storage自定义存储系统(如 S3)

四、实际开发推荐配置示例

class Product(models.Model):
name = models.CharField("产品名称", max_length=100, unique=True)
description = models.TextField("描述", blank=True)
price = models.DecimalField("价格", max_digits=10, decimal_places=2)
stock = models.IntegerField("库存", default=0)
category = models.ForeignKey(
"Category",
on_delete=models.SET_NULL,
null=True,
blank=True,
related_name="products"
)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)

五、小结

想要的效果设置方法
数据库可以为 NULLnull=True
表单可以留空blank=True
两者都允许null=True, blank=True
仅表单可空,数据库为非空字符串blank=True, null=False

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/959984.shtml

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

相关文章

Java Redis “Sentinel(哨兵)与集群”面试清单(含超通俗生活案例与深度理解) - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

操作系统中的索引节点存放什么数据?

目录索引节点(inode)的核心内容1. 文件的元数据2. 指向数据块的指针3. 文件的类型信息关键点:inode 中不包含什么?一个生动的比喻总结表格索引节点(inode)的核心内容 可以把 inode 想象成一个文件的“身份证”或…

后缀学习笔记 | -er/-or -ee 系列 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

应用于ElasticSearch的C++ API——elasticlient - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

CICD程序选型指南,Jenkins vs Arbess哪一款更好用?

CICD程序选型指南,Jenkins vs Arbess哪一款更好用?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&quo…

China Collegiate Programming Contest (CCPC) Jinan Site (The 3rd Universal Cup. Stage 17: Jinan) 题解

目录Problem A. The FoolProblem B. The MagicianProblem C. The EmpressoProblem D. The EmperorProblem E. The ChariotProblem F. The HermitProblem G. The Wheel of FortuneProblem H. StrengthProblem I. The Ha…

LLM 训练基础概念与流程简介

1. LLM 训练基础概念 1.1 预训练(Pretrain) LLM 首先要学习的并非直接与人交流,而是让网络参数中充满知识的墨水,“墨水” 理论上喝的越饱越好,产生大量的对世界的知识积累。 预训练就是让 Model 先埋头苦学大量基…

完整教程:Suppr超能文献的zotero插件-github项目的介绍

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

TensorRT 和 ONNX Runtime 推理优化实战:10 个降低延迟的工程技巧

模型速度的瓶颈往往不在算法本身。几毫秒的优化累积起来就能让用户感受到明显的性能提升。下面这些技术都是在生产环境跑出来的经验,不需要重构代码实施起来也相对简单并且效果显著。https://avoid.overfit.cn/post/4…

csp-j/s历险记

csp-j/s比赛一直是一个十分SB优质的比赛 -在那个晴空万里的早上,与同学们共同坐地铁前往CSP-J考场-ye————————————————————————————————! -从从容容游刃有余 ——第一题—— AC! —…

深信服AC1700

备份软件下载地址:深信服技术支持-工具专区 恢复出厂设置方法:深信服社区-专业、开放、共享 升级包下载地址:行为管理AC-深信服技术支持当前升级包版本为Sangfor-AC-13.0.120共有5个app 开始升级:正在检测软件升级…

2025年FFS重膜包装机厂家综合实力排行榜TOP5

文章摘要 随着包装行业智能化转型加速,FFS重膜包装机市场呈现爆发式增长。2025年行业数据显示,全自动重袋包装设备需求同比增长32%,其中技术领先企业占据70%市场份额。本文基于权威数据和技术参数评测,为您呈现当前…

2025年重袋包装机品牌排行榜:十大实力厂家综合评测

文章摘要 2025年重袋包装机行业迎来智能化升级浪潮,本文基于技术实力、市场口碑和服务能力综合评测十大重袋包装机品牌,为行业用户提供权威选购参考。其中合肥徽达智能装备有限公司凭借全自动技术创新和一站式解决方…

2025年国内重袋包装机厂家权威推荐榜单

摘要 随着工业4.0智能化转型加速,重袋包装机行业迎来技术革新浪潮。2025年国内重袋包装机制造企业在技术创新、服务体系和产品质量方面呈现全面提升态势,本文基于市场调研数据、用户口碑评价和技术参数对比,为您呈现…

2025年国内重袋包装机品牌推荐榜单

摘要 重袋包装机行业在2025年迎来智能化转型高峰,随着制造业升级,全自动设备需求激增。本文基于市场调研和用户口碑,整理出2025年国内重袋包装机品牌前十排名,为采购商提供参考。榜单结合技术参数、客户案例和行业…

解析ui-setupUi(this)

ui->setupUi(this)是由.ui文件生成的类的构造函数,这个函数的作用是对界面进行初始化,它按照我们在Qt设计器里设计的样子把窗体画出来,把我们在Qt设计器里面定义的信号和槽建立起来。

深入解析:哺乳动物双等位基因表达的 “守护者”--解析 MSL2对基因剂量平衡与疾病机制的新启示--文献精读164

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

软考完结篇

今天终于考完软考了。下午一点入场,六点出来的,我还提前出来半个小时呢。 这考场压迫感太强了,即使我这从小考到大的也有点招架不住。 一坐坐5个小时,谁受得了。 考试和预期中差不多。有一些新的没见过的题,做不出…

深度学习优化算法深入分析:从 SGD 到 LAMB - 指南

深度学习优化算法深入分析:从 SGD 到 LAMB - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

记录一些生活。

最近常常在想,假如我有一个从小一起玩耍的异性伙伴,我的恋爱观会不会被改变。 假如我也有一个不会发展成恋爱关系的异性朋友,感情的道路上是不是会比较顺利? 但是男女间真的有纯友谊吗?《我可能不会爱你》早就给过…