Django model 字段类型及选项解析(一)

字段类型选择:AutoField(Field)- int自增列,必须填入参数 primary_key=TrueBigAutoField(AutoField)- bigint自增列,必须填入参数 primary_key=True注:当model中如果没有自增列,则自动会创建一个列名为id的列from django.db import modelsclass UserInfo(models.Model):# 自动创建一个列名为id的且为自增的整数列username = models.CharField(max_length=32)class Group(models.Model):# 自定义自增列nid = models.AutoField(primary_key=True)name = models.CharField(max_length=32)SmallIntegerField(IntegerField):- 小整数 -32768 ~ 32767PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)- 正小整数 0 ~ 32767IntegerField(Field)- 整数列(有符号的) -2147483648 ~ 2147483647PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)- 正整数 0 ~ 2147483647BigIntegerField(IntegerField):- 长整型(有符号的) -9223372036854775808 ~ 9223372036854775807自定义无符号整数字段class UnsignedIntegerField(models.IntegerField):def db_type(self, connection):return 'integer UNSIGNED'PS: 返回值为字段在数据库中的属性,Django字段默认的值为:'AutoField': 'integer AUTO_INCREMENT','BigAutoField': 'bigint AUTO_INCREMENT','BinaryField': 'longblob','BooleanField': 'bool','CharField': 'varchar(%(max_length)s)','CommaSeparatedIntegerField': 'varchar(%(max_length)s)','DateField': 'date','DateTimeField': 'datetime','DecimalField': 'numeric(%(max_digits)s, %(decimal_places)s)','DurationField': 'bigint','FileField': 'varchar(%(max_length)s)','FilePathField': 'varchar(%(max_length)s)','FloatField': 'double precision','IntegerField': 'integer','BigIntegerField': 'bigint','IPAddressField': 'char(15)','GenericIPAddressField': 'char(39)','NullBooleanField': 'bool','OneToOneField': 'integer','PositiveIntegerField': 'integer UNSIGNED','PositiveSmallIntegerField': 'smallint UNSIGNED','SlugField': 'varchar(%(max_length)s)','SmallIntegerField': 'smallint','TextField': 'longtext','TimeField': 'time','UUIDField': 'char(32)',BooleanField(Field)- 布尔值类型NullBooleanField(Field):- 可以为空的布尔值CharField(Field)- 字符类型- 必须提供max_length参数, max_length表示字符长度TextField(Field)- 文本类型EmailField(CharField):- 字符串类型,Django Admin以及ModelForm中提供验证机制IPAddressField(Field)- 字符串类型,Django Admin以及ModelForm中提供验证 IPV4 机制GenericIPAddressField(Field)- 字符串类型,Django Admin以及ModelForm中提供验证 Ipv4和Ipv6- 参数:protocol,用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6"unpack_ipv4, 如果指定为True,则输入::ffff:192.0.2.1时候,可解析为192.0.2.1,开启刺功能,需要protocol="both"URLField(CharField)- 字符串类型,Django Admin以及ModelForm中提供验证 URLSlugField(CharField)- 字符串类型,Django Admin以及ModelForm中提供验证支持 字母、数字、下划线、连接符(减号)CommaSeparatedIntegerField(CharField)- 字符串类型,格式必须为逗号分割的数字UUIDField(Field)- 字符串类型,Django Admin以及ModelForm中提供对UUID格式的验证FilePathField(Field)- 字符串,Django Admin以及ModelForm中提供读取文件夹下文件的功能- 参数:path,                      文件夹路径match=None,                正则匹配recursive=False,           递归下面的文件夹allow_files=True,          允许文件allow_folders=False,       允许文件夹FileField(Field)- 字符串,路径保存在数据库,文件上传到指定目录- 参数:upload_to = ""      上传文件的保存路径storage = None      存储组件,默认django.core.files.storage.FileSystemStorageImageField(FileField)- 字符串,路径保存在数据库,文件上传到指定目录- 参数:upload_to = ""      上传文件的保存路径storage = None      存储组件,默认django.core.files.storage.FileSystemStoragewidth_field=None,   上传图片的高度保存的数据库字段名(字符串)height_field=None   上传图片的宽度保存的数据库字段名(字符串)DateTimeField(DateField)- 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]DateField(DateTimeCheckMixin, Field)- 日期格式      YYYY-MM-DDTimeField(DateTimeCheckMixin, Field)- 时间格式      HH:MM[:ss[.uuuuuu]]DurationField(Field)- 长整数,时间间隔,数据库中按照bigint存储,ORM中获取的值为datetime.timedelta类型FloatField(Field)- 浮点型DecimalField(Field)- 10进制小数- 参数:max_digits,小数总长度decimal_places,小数位长度BinaryField(Field)- 二进制类型字段中的参数详解:null                数据库中字段是否可以为空(null=True)db_column           数据库中字段的列名(db_column="test")db_tablespacedefault             数据库中字段的默认值primary_key         数据库中字段是否为主键(primary_key=True)db_index            数据库中字段是否可以建立索引(db_index=True)unique              数据库中字段是否可以建立唯一索引(unique=True)unique_for_date     数据库中字段【日期】部分是否可以建立唯一索引unique_for_month    数据库中字段【月】部分是否可以建立唯一索引unique_for_year     数据库中字段【年】部分是否可以建立唯一索引auto_now            更新时自动更新当前时间auto_now_add        创建时自动更新当前时间verbose_name        Admin中显示的字段名称blank               Admin中是否允许用户输入为空 表单提交时可以为空editable            Admin中是否可以编辑help_text           Admin中该字段的提示信息choices             Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作如:gf = models.IntegerField(choices=[(0, '何穗'),(1, '大表姐'),],default=1)error_messages      自定义错误信息(字典类型),从而定制想要显示的错误信息;字典健:null, blank, invalid, invalid_choice, unique, and unique_for_date如:{'null': "不能为空.", 'invalid': '格式错误'}validators          自定义错误验证(列表类型),从而定制想要的验证规则from django.core.validators import RegexValidatorfrom django.core.validators import EmailValidator,URLValidator,DecimalValidator,\MaxLengthValidator,MinLengthValidator,MaxValueValidator,MinValueValidator如:test = models.CharField(max_length=32,error_messages={'c1': '优先错信息1','c2': '优先错信息2','c3': '优先错信息3',},validators=[RegexValidator(regex='root_\d+', message='错误了', code='c1'),RegexValidator(regex='root_112233\d+', message='又错误了', code='c2'),EmailValidator(message='又错误了', code='c3'), ])

 

转载于:https://www.cnblogs.com/sun1994/p/8566988.html

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

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

相关文章

C++中引用符的使用

初学数据结构的时候,大家可能经常可以看到在线性表的一些操作函数中会有**&**的使用,初学者或者跨考考生或许会对这一点的使用存在着一段不短时间的疑惑。今天就这一点展开简单的描述。 实质上,在C中引用符号的使用大家可以看成是c中指针…

springboot如何对本地数据库增删改查_SpringBoot整合Mybatis实现数据库增删改查

接下来我们需要在application.properties配置文件中配置Durid数据库连接池。本机需安装mysql数据库,一下配置为小编本机的数据库配置,数据库名为test,用户名为root,密码为123456。spring.datasource.typecom.alibaba.druid.pool.DruidDataSourcespring.d…

UOJ.35.[模板]后缀排序(后缀数组 倍增)

题目链接 论找到一个好的教程的正确性。。后缀数组 下标从1编号&#xff1a; //299ms 2560kb #include <cstdio> #include <cstring> #include <algorithm> const int N1e55;int n,sa[N],rk[N],sa2[N],tm[N],ht[N]; char s[N];void Get_SA() {int *xrk,*ysa2…

linux 使cpu使用率升高_关于linux系统CPU篇---gt;CPU使用率升高

1.CPU使用率为单位时间内CPU使用情况的统计&#xff0c;以百分比的方式展示。LINUX作为一个多任务操作系统&#xff0c;将每个CPU的时间划分为很短的时间片&#xff0c;再通过调度器轮流分配给各个任务使用&#xff0c;因此造成多任务同时运行的错觉2.如何查看CPU使用率&#x…

软件测试之逻辑覆盖测试理论总结(白话文)

1.语句覆盖 语句覆盖就是所有可执行的语句都可以得到一次执行。注意可执行那三个字就可以&#xff0c;因为可能有的判定条件比较狗&#xff0c;它下面的分支的语句无论如何都不会执行。 例如这随手就能写出一个: if(x>100&&x<100) {x100; }当然实际上一般不会有…

datatables 的导出button自定义

1.dom 方式 $(#myTable).DataTable( {dom: Bfrtip,buttons: [copy, excel, pdf] } ); 2.手动插入 var table $(#example).DataTable( {buttons: [copy, excel, pdf] } );table.buttons().container().appendTo( $(.col-sm-6:eq(0), table.table().container() ) ); $(#myTable…

excel显著性检验_#如何用excel做anova分析#用excel做显著性分析

如何用Excel做方差分析&#xff1f;&#xff1f;方差分析的步骤&#xff1a;(1)分别计算行与列平方和。行平方与组差相似&#xff0c;是每值与总体均值的离差平方和&#xff0c;列平方和是每列的均值与总体均值的离差平方和。(2)总的平方和的计算与单因素方差分析一样&#xff…

软件测试之控制流图以及环形复杂度独立路径求解问题

首先需要明确的是&#xff0c;控制流图并不等于流程图&#xff0c;可以理解为控制流图的出现是为了后续的环形复杂度的计算和写出独立路径和配以相应的测试用例。 所以控制流图是核心&#xff0c;画图的时候务必谨慎再谨慎&#xff0c;要不然可能你后面的全部崩盘。 控制流图考…

MS Code 使用 TFVC 插件时遇到的问题

使用 TFVC 插件&#xff0c; 在 singin 时提示 &#xff1a; “It appears you have configured a non-English version of the TF executable. Please ensure an English version is properly configured.” 这是 Code 的问题&#xff0c; 官方解释&#xff1a; https://gith…

server的自增主键返回函数 sql_SQL自增主键函数

自动生成编码的主键函数比如CRM00001CRM00002CRM00003create table IntKey(KeyChar char(10))gocreate function GetKey()returns char(10)asbegindeclare KeyValue intdeclare KeyReturn varchar(20)set KeyValue cast(isnull((select max(KeyChar) from IntKey),0) as int) …

软件测试之黑盒测试-等价类划分法

首先&#xff0c;明确等价类分为有效等价类和无效等价类两种&#xff0c;一般无效等价类都是根据有效等价类写出来的。为了严谨&#xff0c;在白话文之前还是附个定义吧&#xff0c;以免误人子弟。 说白了&#xff0c;有效等价类就是有效输入数据的集合&#xff0c;无效等价类…

PM2.5环境检测系统的设计与分析

PM2.5环境检测系统的设计与分析 摘要&#xff1a; 大气颗粒物污染对人类健康和生态环境造成了很大的影响&#xff0c;这让人们逐渐重视起对细颗粒物PM2.5检测技术的研究。本文阐述了PM2.5浓度检测的五种方法&#xff0c;在对上述各方法分析总结的基础上针对日常生活中PM2.5污染…

关于C和C++中for循环对于中间逗号的判定

for&#xff08;&#xff1b;A,B,;&#xff09; 虽然学了好久C语言了&#xff0c;但是自己还真是一直没有注意过for循环中间有逗号表达式的时候判定&#xff0c;之前一直都是以为A和B同时满足了才会进行执行。学编译原理&#xff0c;深入理解一些语言的结构的时候才发现了这一点…

c语言中的取模运算符_C语言除法算法和取模运算的实现(多种算法,多种思路)...

对计算机来说&#xff0c;除法与求模是整数算术运算中最复杂的运算。相对其他运算(如加法与减法)来说&#xff0c;这两种算法的执行速度非常慢。例如&#xff0c;ARM 硬件上不支持除法指令&#xff0c;编译器调用 C 库函数来实现除法运算。直接利用 C 库函数中的标准整数除法程…

【CF603E】Pastoral Oddities cdq分治+并查集

【CF603E】Pastoral Oddities 题意&#xff1a;有n个点&#xff0c;依次加入m条边权为$l_i$的无向边&#xff0c;每次加入后询问&#xff1a;当前图是否存在一个生成子图&#xff0c;满足所有点的度数都是奇数。如果有&#xff0c;输出这个生成子图中边权最大的边的权值最小可能…

关于C/C++中函数参数传递的规则

f&#xff08;A,B,C&#xff09;&#xff1b; 在编译程序中&#xff0c;对函数参数传递的处理是由右向左进行的。 因此&#xff0c;先传递的是最右边的参数的值。这个结论在日常使用的时候其实也很难发现有什么具体的区别&#xff0c;但是在编译原理中或者一些偏向于理论的考试…

sql如何遍历几百万的表_SQL Server遍历表中记录的2种方法(使用表变量和游标)

SQL Server遍历表一般都要用到游标&#xff0c;SQL Server中可以很容易的用游标实现循环&#xff0c;实现SQL Server遍历表中记录。本文将介绍利用使用表变量和游标实现数据库中表的遍历。表变量来实现表的遍历以下代码中&#xff0c;代码块之间的差异已经用灰色的背景标记。DE…

SQL的主键和外键

SQL的主键和外键的作用 SQL的主键和外键的作用&#xff1a; 外键取值规则&#xff1a;空值或参照的主键值。 (1)插入非空值时&#xff0c;如果主键表中没有这个值&#xff0c;则不能插入。 (2)更新时&#xff0c;不能改为主键表中没有的值。 (3)删除主键表记录时&#xff0c;你…

win 11bitlocker恢复密匙一般情况的解决方式(这里指的是你现在使用的微软账户一直没有变更过)

本来没有打算写这一篇解决帖子的&#xff0c;但是最近好多微博的友友都在私我询问解决方法&#xff0c;孩子虽然很热心&#xff0c;但是真的回复不过来了&#xff0c;打字太累了&#xff0c;这里给大家简单指个路&#xff0c;希望能够对大家有所帮助。 当时出现这个问题的时候…

java类验证和装载顺序_java中类的加载顺序介绍(ClassLoader)

转自&#xff1a;http://blog.csdn.net/eff666/article/details/522034061、ClassNotFoundExcetpion我们在开发中&#xff0c;经常可以遇见java.lang.ClassNotFoundExcetpion这个异常&#xff0c;今天我就来总结一下这个问题。对于这个异常&#xff0c;它实质涉及到了java技术体…