Django模型定义参考

字段

对字段名称的限制

  • 字段名不能是Python的保留字,否则会导致语法错误
  • 字段名不能有多个连续下划线,否则影响ORM查询操作

Django模型字段类

字段类说明
AutoField自增ID字段
BigIntegerField64位有符号整数
BinaryField存储二进制数据的字段,对应Python的bytes类型
BooleanField存储True或False
CharField长度较小的字符串
DateField存储日期,有auto_now和auto_now_add属性
DateTimeField存储日期和日期,两个附加属性同上
DecimalField存储固定精度小数,有max_digits(有效位数)和decimal_places(小数点后面)两个必要的参数
DurationField存储时间跨度
EmailField与CharField相同,可以用EmailValidator验证
FileField文件上传字段
FloatField存储浮点数
ImageField其他同FileFiled,要验证上传的是不是有效图像
IntegerField存储32位有符号整数。
GenericIPAddressField存储IPv4或IPv6地址
NullBooleanField存储True、False或null值
PositiveIntegerField存储无符号整数(只能存储正数)
SlugField存储slug(简短标注)
SmallIntegerField存储16位有符号整数
TextField存储数据量较大的文本
TimeField存储时间
URLField存储URL的CharField
UUIDField存储全局唯一标识符

字段属性

通用字段属性

选项说明
null数据库中对应的字段是否允许为NULL,默认为False
blank后台模型管理验证数据时,是否允许为NULL,默认为False
choices设定字段的选项,各元组中的第一个值是设置在模型上的值,第二值是人类可读的值
db_column字段对应到数据库表中的列名,未指定时直接使用字段的名称
db_index设置为True时将在该字段创建索引
db_tablespace为有索引的字段设置使用的表空间,默认为DEFAULT_INDEX_TABLESPACE
default字段的默认值
editable字段在后台模型管理或ModelForm中是否显示,默认为True
error_messages设定字段抛出异常时的默认消息的字典,其中的键包括null、blank、invalid、invalid_choice、unique和unique_for_date
help_text表单小组件旁边显示的额外的帮助文本。
primary_key将字段指定为模型的主键,未指定时会自动添加AutoField用于主键,只读。
unique设置为True时,表中字段的值必须是唯一的
verbose_name字段在后台模型管理显示的名称,未指定时使用字段的名称

ForeignKey属性

  1. limit_choices_to:值是一个Q对象或返回一个Q对象,用于限制后台显示哪些对象。
  2. related_name:用于获取关联对象的关联管理器对象(反向查询),如果不允许反向,该属性应该被设置为'+',或者以'+'结尾。
  3. to_field:指定关联的字段,默认关联对象的主键字段。
  4. db_constraint:是否为外键创建约束,默认值为True。
  5. on_delete:外键关联的对象被删除时对应的动作,可取的值包括django.db.models中定义的:
    • CASCADE:级联删除。
    • PROTECT:抛出ProtectedError异常,阻止删除引用的对象。
    • SET_NULL:把外键设置为null,当null属性被设置为True时才能这么做。
    • SET_DEFAULT:把外键设置为默认值,提供了默认值才能这么做。

ManyToManyField属性

  1. symmetrical:是否建立对称的多对多关系。
  2. through:指定维持多对多关系的中间表的Django模型。
  3. throughfields:定义了中间模型时可以指定建立多对多关系的字段。
  4. db_table:指定维持多对多关系的中间表的表名。

模型元数据选项

选项说明
abstract设置为True时模型是抽象父类
app_label如果定义模型的应用不在INSTALLED_APPS中可以用该属性指定
db_table模型使用的数据表名称
db_tablespace模型使用的数据表空间
default_related_name关联对象回指这个模型时默认使用的名称,默认为<model_name>_set
get_latest_by模型中可排序字段的名称。
managed设置为True时,Django在迁移中创建数据表并在执行flush管理命令时把表移除
order_with_respect_to标记对象为可排序的
ordering对象的默认排序
permissions创建对象时写入权限表的额外权限
default_permissions默认为('add', 'change', 'delete')
unique_together设定组合在一起时必须独一无二的字段名
index_together设定一起建立索引的多个字段名
verbose_name为对象设定人类可读的名称
verbose_name_plural设定对象的复数名称

查询参考

按字段查找可以用的条件:

  1. exact / iexact:精确匹配/忽略大小写的精确匹配查询
  2. contains / icontains / startswith / istartswith / endswith / iendswith:基于like的模糊查询
  3. in:集合运算
  4. gt / gte / lt / lte:大于/大于等于/小于/小于等于关系运算
  5. range:指定范围查询(SQL中的between…and…
  6. year / month / day / week_day / hour / minute / second:查询时间日期
  7. isnull:查询空值(True)或非空值(False)
  8. search:基于全文索引的全文检索
  9. regex / iregex:基于正则表达式的模糊匹配查询

转载于:https://www.cnblogs.com/virus1996/p/9370205.html

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

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

相关文章

精通Quartz-入门-Job

JobDetail实例&#xff0c;并且&#xff0c;它通过job的类代码引用这个job来执行。每次调度器执行job时&#xff0c;它会在调用job的execute(..)方法之前创建一个他的实例。这就带来了两个事实&#xff1a;一、job必须有一个不带参数的构造器&#xff0c;二、在job类里定义数据…

单据打印_Excel多功能进销存套表,自动库存单据,查询打印一键操作

Hello大家好&#xff0c;我是帮帮。今天跟大家分享一张Excel多功能进销存管理套表&#xff0c;自动库存&#xff0c;单据打印&#xff0c;查询统算一键操作。为了让大家能更稳定的下载模板&#xff0c;我们又开通了全新下载方式(见文章末尾)&#xff0c;以便大家可以轻松获得免…

卡尔曼滤波滤波方程_了解卡尔曼滤波器及其方程

卡尔曼滤波滤波方程Before getting into what a Kalman filter is or what it does, let’s first do an exercise. Open the google maps application on your phone and check your device’s current location.在了解什么是卡尔曼滤波器或其功能之前&#xff0c;我们先做一个…

js中的new()到底做了些什么??

要创建 Person 的新实例&#xff0c;必须使用 new 操作符。以这种方式调用构造函数实际上会经历以下 4个步骤&#xff1a;(1) 创建一个新对象&#xff1b;(2) 将构造函数的作用域赋给新对象&#xff08;因此 this 就指向了这个新对象&#xff09; &#xff1b;(3) 执行构造函数…

Candidate sampling:NCE loss和negative sample

在工作中用到了类似于negative sample的方法&#xff0c;才发现我其实并不了解candidate sampling。于是看了一些相关资料&#xff0c;在此简单总结一些相关内容。 主要内容来自tensorflow的candidate_sampling和卡耐基梅隆大学一个学生写的一份notesNotes on Noise Contrastiv…

golang key map 所有_Map的底层实现 为什么遍历Map总是乱序的

Golang中Map的底层结构其实提到Map&#xff0c;一般想到的底层实现就是哈希表&#xff0c;哈希表的结构主要是Hashcode 数组。存储kv时&#xff0c;首先将k通过hashcode后对数组长度取余&#xff0c;决定需要放入的数组的index当数组对应的index已有元素时&#xff0c;此时产生…

朴素贝叶斯分类器 文本分类_构建灾难响应的文本分类器

朴素贝叶斯分类器 文本分类背景 (Background) Following a disaster, typically you will get millions and millions of communications, either direct or via social media, right at the time when disaster response organizations have the least capacity to filter and…

第二轮冲次会议第六次

今天早上八点我们进行了站立会议 此次站立会议我们开了30分钟 参加会议的人员&#xff1a; 黄睿麒 侯熙磊 会议内容&#xff1a;我们今天讨论了如何分离界面&#xff0c;是在显示上进行限制从而达到不同引用展现不同便签信息&#xff0c;还是单独开一个界面从而实现显示不同界面…

markdown 链接跳转到标题_我是如何使用 Vim 高效率写 Markdown 的

本文仅适合于对vim有一定了解的人阅读&#xff0c;没有了解的人可以看看文中的视频我使用 neovim 代替 vim &#xff0c;有些插件是 neovim 独占&#xff0c; neovim 和 vim 的区别请自行 google系统: Manjaro(Linux)前言之前我一直使用的是 vscode 和 typora 作为 markdown 编…

nginx运用

1、nginx的 命令 start nginx 这样&#xff0c;nginx 服务就启动了。打开任务管理器&#xff0c;查看 nginx.exe 进程&#xff0c;有二个进程会显示&#xff0c;占用系统资源&#xff0c;那是相当的少。然后再打开浏览器&#xff0c;输入 http://127.0.0.1/ 就可以看到nginx的…

数据修复案例

/*--数据修复案例 如何在数据库文件损坏&#xff08;日志文件完好&#xff09;情况下&#xff0c;进行恢复 --(收藏整理)--*/ --测试步骤 --1.建一个测试数据库test create database test go use test go -…

Seaborn:Python

Seaborn is a data visualization library built on top of matplotlib and closely integrated with pandas data structures in Python. Visualization is the central part of Seaborn which helps in exploration and understanding of data.Seaborn是建立在matplotlib之上…

利用日志还原数据库

USE masterGO-- 创建测试数据库CREATE DATABASE db_test GO -- 对数据库进行备份BACKUP DATABASE db_testTO DISK c:/db_test.bakWITH FORMATGO -- 创建测试表CREATE TABLE db_test.dbo.tb_test( ID int) -- 延时 1 秒钟,再进行后面的操作(这是由于SQL Server的时间精度…

Springboot集成BeanValidation扩展一:错误提示信息加公共模板

Bean Validator扩展 1、需求 ​ 在使用validator时&#xff0c;有个需求就是公用错误提示信息&#xff0c;什么意思&#xff1f; 举个例子&#xff1a; ​ NotEmpty非空判断&#xff0c;在资源文件中我不想每个非空判断都写”不能为空“&#xff0c;只需要写”###“&#xff0c…

福大软工 · 第十次作业 - 项目测评(团队)

写在前面 本次作业测试报告链接林燊大哥第一部分 调研&#xff0c;评测 一、评测 软件的bug&#xff0c;功能评测&#xff0c;黑箱测试 1.下载并使用&#xff0c;描述最简单直观的个人第一次上手体验 IOS端 UI界面简单明了&#xff0c;是我喜欢的极简风格。课程模块界面简洁优雅…

销货清单数据_2020年8月数据科学阅读清单

销货清单数据Note: I am not affiliated with any of the writers in this article. These are simply books and essays that I’m excited to share with you. There are no referrals or a cent going in my pocket from the authors or publishers mentioned. Reading is a…

c++运行不出结果_fastjson 不出网利用总结

点击蓝字 关注我们 声明 本文作者:flashine 本文字数:2382 阅读时长:20分钟 附件/链接:点击查看原文下载 声明:请勿用作违法用途,否则后果自负 本文属于WgpSec原创奖励计划,未经许可禁止转载 前言 之前做项目在内网测到了一个fastjson反序列化漏洞,使用dnslo…

FocusBI:租房分析可视化(PowerBI网址体验)

微信公众号&#xff1a;FocusBI关注可了解更多的商业智能、数据仓库、数据库开发、爬虫知识及沪深股市数据推送。问题或建议&#xff0c;请关注公众号发送消息留言;如果你觉得FocusBI对你有帮助&#xff0c;欢迎转发朋友圈或在文章末尾点赞[1] 《商业智能教程》pdf下载地址 …

米其林餐厅 盐之花_在世界范围内探索《米其林指南》

米其林餐厅 盐之花Among the culinary world, there are few greater accolades for a restaurant than being awarded a Michelin star (or three!), or being listed as one of the best in the world by a reputable guide. Foodies and fine dine lovers like myself, see …

require_once的用法

require_once 语句和 require 语句完全相同&#xff0c;唯一区别是 PHP 会检查该文件是否已经被包含过&#xff0c;如果是则不会再次包含。 参见 include_once 的文档来理解 _once 的含义&#xff0c;并理解与没有 _once 时候有什么不同。 有一个文件a.php,里面有一个变量$var1…