Django_模型字段属性
- """
- 定义属性
- 概述
- ·django根据属性的类型确定以下信息
- ·当前选择的数据库支持字段的类型
- ·渲染管理表单时使用的默认html控件
- ·在管理站点最低限度的验证
- ·django会为表增加自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认的主键列
- ·属性命名限制
- ·遵循标识符规则
- ·由于django的查询方式,不允许使用连续的下划线
- 库
- ·定义属性时,需要字段类型,字段类型被定义在django.db.models.fields目录下,为了方便使用,被导入到django.db.models中
- ·使用方式
- ·导入from django.db import models
- ·通过models.Field创建字段类型的对象,赋值给属性
- 逻辑删除
- ·对于重要数据都做逻辑删除,不做物理删除,实现方法是定义isDelete属性,类型为BooleanField,默认值为False
- 字段类型
- ·AutoField
- ·一个根据实际ID自动增长的IntegerField,通常不指定如果不指定,一个主键字段将自动添加到模型中
- ·CharField(max_length=字符长度)
- ·字符串,默认的表单样式是 TextInput
- ·TextField
- ·大文本字段,一般超过4000使用,默认的表单控件是Textarea
- ·IntegerField
- ·整数
- ·DecimalField(max_digits=None, decimal_places=None)
- ·使用python的Decimal实例表示的十进制浮点数
- ·参数说明
- ·DecimalField.max_digits
- ·位数总数
- ·DecimalField.decimal_places
- ·小数点后的数字位数
- ·FloatField
- ·用Python的float实例来表示的浮点数
- ·BooleanField
- ·true/false 字段,此字段的默认表单控制是CheckboxInput
- ·NullBooleanField
- ·支持null、true、false三种值
- ·DateField([auto_now=False, auto_now_add=False])
- ·使用Python的datetime.date实例表示的日期
- ·参数说明
- ·DateField.auto_now
- ·每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为false
- ·DateField.auto_now_add
- ·当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false
- ·说明
- ·该字段默认对应的表单控件是一个TextInput. 在管理员站点添加了一个JavaScript写的日历控件,和一个“Today"的快捷按钮,包含了一个额外的invalid_date错误消息键
- ·注意
- ·auto_now_add, auto_now, and default 这些设置是相互排斥的,他们之间的任何组合将会发生错误的结果
- ·TimeField
- ·使用Python的datetime.time实例表示的时间,参数同DateField
- ·DateTimeField
- ·使用Python的datetime.datetime实例表示的日期和时间,参数同DateField
- ·FileField
- ·一个上传文件的字段,一般用于存文件路径
- ·ImageField
- ·继承了FileField的所有属性和方法,但对上传的对象进行校验,确保它是个有效的image
- 字段选项
- ·概述
- ·通过字段选项,可以实现对字段的约束
- ·在字段对象时通过关键字参数指定
- ·null
- ·如果为True,Django 将空值以NULL 存储到数据库中,默认值是 False
- ·blank
- ·如果为True,则该字段允许为空白,默认值是 False,和NULL不一样
- ·注意
- ·null是数据库范畴的概念,blank是表单验证证范畴的
- ·db_column
- ·字段的名称,如果未指定,则使用属性的名称
- ·db_index
- ·若值为 True, 则在表中会为此字段创建索引,查询会变快,其他操作(增加删除修改)会变慢,用于经常查询的
- ·default
- ·默认值
- ·primary_key
- ·若为 True, 则该字段会成为模型的主键字段
- ·unique
- ·如果为 True, 这个字段在表中必须有唯一值
- 关系
- ·分类
- ·ForeignKey:一对多,将字段定义在多的端中
- ·ManyToManyField:多对多,将字段定义在两端中
- ·OneToOneField:一对一,将字段定义在任意一端中
- ·用一访问多
- ·格式
- ·对象.模型类小写_set
- ·示例
- grade.students_set
- ·用一访问一
- ·格式
- ·对象.模型类小写
- ·示例
- ·grade.students
- ·访问id
- ·格式
- ·对象.属性_id
- ·示例
- ·student.sgrade_id
- """
Django_模型字段属性的更多相关文章
- Django(七)模型:字段属性、字段选项(参数)
一.模型类属性命名限制 参考:https://docs.djangoproject.com/zh-hans/3.0/topics/db/models/ 1)不能是python的保留关键字. 2)不允许 ...
- 二 Djano模型层之模型字段选项
字段选项 以下参数是全部字段类型都可用的,而且是可选的 null 如果为True,Django将在数据库中将空值存储为NULL.默认值为False 对于字符串字段,如果设置了null=True意味着& ...
- Django_ORM_字段属性
Django_ORM_字段属性 常用字段 AutoField int自增列,必填参 primary_key=True 默认会自动创建一个列名为id的列 IntegerField 一个整数类型,范围在 ...
- django项目模型字段
一个模型(model)就是一个单独的.确定的数据的信息源,包含了数据的字段和操作方法.通常,每个模型映射为一张数据库中的表. 基本的原则如下: 每个模型在Django中的存在形式为一个Python类 ...
- odoo字段属性
以下为可用的非关联字段类型以及其对应的位置参数: Char(string)是一个单行文本,唯一位置参数是string字段标签. Text(string)是一个多行文本,唯一位置参数是string字段标 ...
- orm查询优化 MTV和MVC模型 字段的chioces参数 Ajax
目录 一.ORM查询优化 1. all()查询 2. only()/defer()方法 (1)only()方法 (2)defer()方法 3. select_related()/prefetch_re ...
- odoo字段属性列举
罗列一些Odoo中的字段属性,基本包含大部分的属性. 常用字段属性 平平无奇常用字段属性 string:字段的标题,在UI视图标签中使用.它是可选项,如未设置,会通过首字母大写及将空格替换成为下划线来 ...
- ORM研究3 - odoo fields常用的字段属性
之前我们已经讲解了odoo ORM中的一些对字段常用的API操作方法,今天我们继续研究一下Odoo orm中字段的一些通用属性字段的使用,学会它们可以为自己创建数据映射并使用有更好的帮助. 通用字段属 ...
- Django_模型类详解(七)
# 定义书籍模型类 class BookInfo(models.Model): btitle = models.CharField(max_length=20) # 书籍名称 bpub_date = ...
随机推荐
- 咸鱼的ACM之路:动态规划(DP)学习记录
按挑战程序设计竞赛介绍的顺序记录一遍学习DP的过程. 1. 01背包问题 问题如下: 有N个物品,每个物品(N[i])都有一定的体积(W[i]),和一定的价值(V[i]) 现在给定一个背包,背包的容量 ...
- CSS 美化网页元素
一.为什么使用CSS 1.有效的传递页面信息 2.使用CSS美化过的页面文本,使页面漂亮.美观,吸引用户 3.可以很好的突出页面的主题内容,使用户第一眼可以看到页面主要内容 4.具有良好的用户体验 二 ...
- 54.Python中Meta类常见的配置
对于一些模型级别的配置.我们可以通过在模型中定义一个类,叫做Meta.然后在这个类中添加一些属性来控制模型的作用. 注意:添加的这个类一定要是Meta,否者的话Django就会不能够识别. from ...
- 删除在wireshark中保存的filter的方法
现在想删除下图的filter,方法是:Edit->preferences->Filter Expressions
- 859. Kruskal算法求最小生成树(模板)
给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数. 求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible. 给定一张边带权的无向图G=(V, E),其中V表示 ...
- 申请一个美国paypal账户
近期为了做PayPal支付,进口demo已经写好,就差一个美国PayPal账户进行支付测试,几经折腾,终于申请下来,附上参考链接: paypal官网: https://www.paypal.com ...
- 安装 centos8.1
阿里云镜像下载链接 http://mirrors.aliyun.com/centos/8.1.1911/isos/x86_64/ 选择 CentOS-8.1.1911-x86_64-dvd1.iso ...
- liunx下安装Docker
1.安装并启动docker 1.检查内核版本,必须是3.10及以上uname -r2.安装docker yum install docker命令安装(需要联网) [root@localhost ~]# ...
- 想要学好Git,应该掌握哪些基础知识?
说到Git,作为程序员的你,在项目开发中一定会使用到或将来也一定会使用到的,但是我相信,很多在使用Git的人,都只是停留一些简单的操作上,比如提交(commit).拉取(pull).推送(push). ...
- [0CTF 2016]piapiapia{PHP反序列化漏洞(PHP对象注入)}
先上学习链接: https://www.freebuf.com/column/202607.html https://www.cnblogs.com/ichunqiu/p/10484832.html ...