django model常用字段类型

摘自 http://www.cnblogs.com/wt869054461/p/4014271.html

V=models.AutoField(**options)    #int;在Django代码内是自增

V=models.DecimalField(max_digits=None, decimal_places=None<, **options>)    #decimal

V=models.FloatField(<**options>)    #real V=models.BooleanField(**options)    #boolean或bit

V=models.NullBooleanField(<**options>)    #bit字段上可以设置上null值

V=models.DateField(<auto_now=false, **options="" auto_now_add="False,">)  #date #auto_now最后修改记录的日期;auto_now_add添加记录的日期

V=models.DateTimeField(<auto_now=false, **options="" auto_now_add="False,">)    #datetime

V=models.TimeField(<auto_now=false, **options="" auto_now_add="False,">)    #time

V=models.TextField(<**options>)    #text

V=models.XMLField(schema_path=None<, **options>)    #text ——————————————————————————–

V=models.ForeignKey(othermodel<, **options>)    #外键,关联其它模型,创建关联索引

V=models.ManyToManyField(othermodel<, **options>)    #多对多,关联其它模型,创建关联表

V=models.OneToOneField(othermodel<, parent_link=False, **options>)    #一对一,字段关联表属性

V=models.AutoField(**options)    #int;在Django代码内是自增

V=models.DecimalField(max_digits=None, decimal_places=None<, **options>)    #decimal

V=models.FloatField(<**options>)    #real V=models.BooleanField(**options)    #boolean或bit

V=models.NullBooleanField(<**options>)    #bit字段上可以设置上null值

V=models.DateField(<auto_now=false, **options="" auto_now_add="False,">)  #date #auto_now最后修改记录的日期;auto_now_add添加记录的日期

V=models.DateTimeField(<auto_now=false, **options="" auto_now_add="False,">)    #datetime

V=models.TimeField(<auto_now=false, **options="" auto_now_add="False,">)    #time

V=models.TextField(<**options>)    #text

V=models.XMLField(schema_path=None<, **options>)    #text ——————————————————————————–

V=models.ForeignKey(othermodel<, **options>)    #外键,关联其它模型,创建关联索引

V=models.ManyToManyField(othermodel<, **options>)    #多对多,关联其它模型,创建关联表

V=models.OneToOneField(othermodel<, parent_link=False, **options>)    #一对一,字段关联表属性

 

django 中model 作为数据资源指定了字段以及一些处理该相应的功能。通常情况下,每个model对应数据库中的一张表 每个model都是从django.core.meta.Model中派生出来的model中每个属性(class attribute)对应着数据库表中的一个字段非字段信息(Model metadata)在类中被称作METAField Objects每个class attributes对应着数据库中的一个字段,其应该是由meta.Filed的派生的。

from django.core import metaclass Person(meta.Model):    first_name = meta.CharField(maxlength=30)    last_name = meta.CharFiled("lastname",maxlength=30) 除了 ForeignKey, ManytoManyFiled OneToOneField 使用verbose_name关键字以外,第一个可选参数是用来为字段命名的,如果不设置,系统会自动为起起名。sites = meta.ManyToManyField(site,verbose_name="list of sites")

Field 选项

  • null     null 缺省设置为false.通常不将其用于字符型字段上,比如CharField,TextField上.字符型字段如果没有值会返回空字符串。
  • blank    该字段是否可以为空。如果为假,则必须有值
  • choices    一个用来选择值的2维元组。第一个值是实际存储的值,第二个用来方便进行选择。    SEX_CHOICES= ((‘F‘,‘Female‘),(‘M‘,‘Male‘),) coredb_columndb_index    如果为真将为此字段创建索引
  • default    缺省值
  • editable    如果为假,admin模式下将不能改写。缺省为真
  • help_text    admin模式下帮助文档
  • primary_key    设置主键。如果没有设置django创建表时会自动加上    id = meta.AutoField(‘ID‘, primary_key=True)    primary_key=True implies blank=False, null=False and unique=True. Only one primary key is allowed on an object. radio_admin    用于admin模式下将select转换为radio显示。只用于ForeignKey或者设置了choices
  • unique    数据唯一
  • unique_for_date    title =  meta.CharField(maxlength=30,unique_for_date=‘pub_date‘)    系统将不允许title和pub_date两个都相同的数据重复出现 unique_for_month / unique_for_year
  • validator_list    有效性检查。非有效产生 django.core.validators.ValidationError 错误
  • Field Types
  • AutoField     自动增长的整型字段。通常无需自己添加
  • BooleanFieldCharField    对于大量文字应该使用TextField。参数: maxlength
  • DateField    参数:
  • auto_now  自动设置为对象保存时刻的时间。对于类似最后改动之类的应用很有效   
  • auto_now_add  从最初保存对象至今的增量时间
  • DateTimeField 同上EmailField     检查是否为email的CharField字段
  • FileField    保存文件的相对路径名称    绝对路径需要在setting中设置 MEDIA_ROOT。对于ImageField设置 MEDIA_URL。    参数upload_to.相对于MEDIA_ROOT目录的子目录    通过get_<fieldname>_url获取绝对路径
  • FilePathField    通过给定参数获取文件列表(个人感觉)    path 必须要有。 文件系统的绝对路径    match 可选。一个正则表达式。用来做文件筛选过滤    recursive 可选。True 包含子目录查找    FilePathField(path="/home/images", match="foo.*" , recursive=True)
  • FloatField    浮点数字段。两个必须选项    max_digits 数字最多位数    decimal_places 小数点位置    meta.FloatField(...,max_digits=5,decimal_places=2)   /////100.00 ImageField   

基本上同FileField.会进行文件格式检查。两个额外选项    height_field, width_field 如果设置这两项,会自动对图片进行缩放后再保存   

需要 python Imaging library

IntegerFieldIPAddressField

"10.1.1.3" NullBooleanField

比BooleanField多了一个NULL状态 PhoneNumberField

美国格式电话号码 xxx-xxx-xxxx. CharField PositiveIntegerField

正整数 PositiveSmallIntegerField    一个小的正整数。根据数据库的设置 SlugField    小片断。

什么都可以。通常用来存url    SlugField 被暗指 maxlength=50 db_index=True

选项: prepopulate_from 一个用来自动生成slug的字段列表 SmallIntegerFieldTextField TimeField

选项: auto-population(可能不对) from DateField and DateTimeField URLField

选项: verify_exists  如果为True ,系统自动检查该url是否存在不为404 USStateField

两字符美国州简写 XMLField    保存xml数据。

选项:schema_path .指定relaxNG格式schema用来检验xml合法性

字段列表纵览表


字段名


参数


意义


AutoField 

 
一个能够根据可用ID自增的 IntegerField 


BooleanField

 
一个真/假(true/false)字段


CharField


 (max_length)


一个字符串字段,适用于中小长度的字符串。对于长段的文字,请使用 TextField


CommaSeparatedIntegerField


 (max_length)


一个用逗号分隔开的整数字段


DateField


([auto_now], [auto_now_add])


日期字段


DateTimeField

 
时间日期字段,接受跟 DateField 一样的额外选项


EmailField

 
一个能检查值是否是有效的电子邮件地址的 CharField 


FileField 


(upload_to)


一个文件上传字段


FilePathField


(path,[match],[recursive])


一个拥有若干可选项的字段,选项被限定为文件系统中某个目录下的文件名


FloatField


(max_digits,decimal_places)


一个浮点数,对应Python中的 float 实例


ImageField


(upload_to, [height_field] ,[width_field])


像 FileField 一样,只不过要验证上传的对象是一个有效的图片。


IntegerField

 
一个整数。


IPAddressField

 
一个IP地址,以字符串格式表示(例如: "24.124.1.30" )。


NullBooleanField

 
就像一个 BooleanField ,但它支持 None /Null 。


PhoneNumberField 

 
它是一个 CharField ,并且会检查值是否是一个合法的美式电话格式


PositiveIntegerField 

 
和 IntegerField 类似,但必须是正值。


PositiveSmallIntegerField 

 
与 PositiveIntegerField 类似,但只允许小于一定值的值,最大值取决于数据库.


SlugField

 
 嵌条 就是一段内容的简短标签,这段内容只能包含字母、数字、下

划线或连字符。通常用于URL中


SmallIntegerField

 
和 IntegerField 类似,但是只允许在一个数据库相关的范围内的数值(通常是-32,768到

+32,767)


TextField

 
一个不限长度的文字字段


TimeField 

 
时分秒的时间显示。它接受的可指定参数与 DateField 和 DateTimeField 相同。


URLField

 
用来存储URL的字段。


USStateField

 
美国州名称缩写,两个字母。


XMLField 


(schema_path)


它就是一个 TextField ,只不过要检查值是匹配指定schema的合法XML。

通用字段参数列表(所有的字段类型都可以使用下面的参数,所有的都是可选的。)


参数名


意义


null 


如果设置为 True 的话,Django将在数据库中存储空值为 NULL 。默认为 False 。 


blank 


如果是 True ,该字段允许留空,默认为 False 。


choices


一个包含双元素元组的可迭代的对象,用于给字段提供选项。


db_column


当前字段在数据库中对应的列的名字。


db_index


如果为 True ,Django会在创建表格(比如运行 manage.py syncdb )时对这一列创建数据库索引。


default


字段的默认值


editable 


如果为 False ,这个字段在管理界面或表单里将不能编辑。默认为 True 。


help_text 


在管理界面表单对象里显示在字段下面的额外帮助文本。


primary_key


如果为 True ,这个字段就会成为模型的主键。


radio_admin 


默认地,对于 ForeignKey 或者拥有 choices 设置的字段,Django管理界面会使用列表选择框(<select>)。如果 radio_admin 设置为 True 的话,Django就会使用单选按钮界面。 


unique


如果是 True ,这个字段的值在整个表中必须是唯一的。


unique_for_date 


把它的值设成一个 DataField 或者 DateTimeField 的字段的名称,可以确保字段在这个日期内不会出现重复值。


unique_for_month


和 unique_for_date 类似,只是要求字段在指定字段的月份内唯一。


unique_for_year


和 unique_for_date 及 unique_for_month 类似,只是时间范围变成了一年。


verbose_name


除 ForeignKey 、 ManyToManyField 和 OneToOneField 之外的字段都接受一个详细名称作为第一个位置参数。

Django中blank=True和null=True的区别
null 是针对数据库而言,如果 null=True, 表示数据库的该字段可以为空,那么在新建一个model对象的时候是不会报错的!!

blank 是针对表单的,如果 blank=True,表示你的表单填写该字段的时候可以不填,比如 admin 界面下增加 model 一条记录的时候。直观的看到就是该字段不是粗体。

 https://blog.csdn.net/d_hyacinth/article/details/53364051

http://www.360doc.com/content/15/0526/22/10072361_473483633.shtml

好文要顶 关注我 收藏该文  

原文地址:https://www.cnblogs.com/abdm-989/p/12069910.html

时间: 2024-08-28 02:08:16

django model常用字段类型的相关文章

Django中常用字段

一.Djiango框架的常用字段 Django ORM 常用字段和参数 常用字段 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类型,范围在 -2147483648 to 2147483647.(一般不用它来存手机号(位数也不够),直接用字符串存,) CharField 字符类型,必须提供max_length参数, max_length表示字符长度. 这

Django ORM常用字段及参数

目录 Django ORM常用字段及参数 models中的常用字段 字段内的关键字参数 数据库查询优化(面试问题) Django ORM如何开启事务操作 MTV与MVC模型(了解) Django ORM常用字段及参数 models中的常用字段 models中常用字段与数据库中的对应关系 models中常用字段 数据库对应字段 AutoField(primary_key=True) 主键字段 CharField(max_length=32) varchar(32) IntegerField() i

SQL常用字段类型

中文常用字段类型 1.   名称类    nvarchar(10) 2.   数量       int 3.   时间      date 4.   货币      money 5.   编号      nvarchar(10) 6.  小数        decimal 7.  是否      bit

Django&mdash;ORM常用字段和参数

一.ORM常用的字段和参数 1.0 常用字段 # AutoField: int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. # IntegerField: 一个整数类型,范围在 -2147483648 to 2147483647.(一般不用它来存手机号(位数也不够),直接用字符串存,) # CharField: 字符类型,必须提供max_length参数, max_length表示字符长度 # DateField: 日期字

Django ORM 常用字段和参数

一:常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类型,范围在 -2147483648 to 2147483647. CharField 字符类型,必须提供max_length参数, max_length表示字符长度. DateField 日期字段,日期格式 YYYY-MM-DD,相当于Python中的datetime.date()实例. DateTim

MySQL 常用字段类型,介绍及其建表使用方法经验分享

由于工作的公司没有专业的DBA又经常需要建立各种各种的表来满足自己的业务逻辑,所以经常查看MySQL 手册或者谷歌查看相关资料,所以本人就根据我的工作经验和相关资料来介绍一下MySQL各种字段类型及其使用.(由于本人还算是菜鸟哪里写的不对请多多指正,有兴趣的可以探讨一下) MySQL字段类型 int型包括(tinyint, smallint, mediumint, int, bigint) tinyint是1个字节表达范围就是2的8次方(-128-128) 或者(0-255) 很多人不明白为什么

django models的字段类型

django数据库字段类型: 1.models.AutoField  自增列 = int(11) 如果没有的话,默认会生成一个名称为id的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True. 2.models.CharField  字符串字段 必须有max_length 参数 3.models.BooleanFiled   布尔类型=tinyint(1) 不能为空,blank=True 4.models.ComaSeparatedIntegerField  

Django models 的常用字段类型和字段参数

<1> CharField #字符串字段, 用于较短的字符串. #CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的最大字符数. <2> IntegerField #用于保存一个整数. <3> FloatField # 一个浮点数. 必须 提供两个参数: # # 参数 描述 # max_digits 总位数(不包括小数点和符号) # decimal_places 小数位数 # 举例来说, 要保存最大值为 9

Django数据模型——数据库字段类型

字段 一个模型最重要也是唯一必需的部分,是它定义的数据库字段 字段名称限制 1.字段名不能是pythohn保留字,这样会导致python语法错误 2.字段不能包含连续一个以上的下划线,这样会和Django查询语句语法冲突 数据库列的类型 AutoField 指一个能够根据可用ID自增的 IntegerField .通常你不用直接使用它,如果你没有指定主键的话,系统会自动在你的模型中加入这样的主键. BooleanField 一个真/假(true/false)字段. CharField 一个字符串