摘自 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 model常用字段类型的更多相关文章

  1. Django models 常用字段类型

    1.CharField字符串字段,存较短的字符串,长文本要用TextField.必须的参数:max_length 字符的最大长度2.TextField容量很大的文本字段.admin中用 <tex ...

  2. Django中的常用字段类型与参数

    Django中的常用字段类型 1. 数值型 以下都是数值相关的,比如AutoField,它在MySQL中的类型为int(11),而BooleanField在MySQL中对应的类型是tinyint(1) ...

  3. Django ORM 常用字段和参数

    Django ORM 常用字段和参数 一:常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. I ...

  4. Django(ORM常用字段)

    day68 参考:http://www.cnblogs.com/liwenzhou/p/8688919.html 1. Django ORM常用字段:             1. AutoField ...

  5. Django框架之第六篇(模型层)--单表查询和必知必会13条、单表查询之双下划线、Django ORM常用字段和参数、关系字段

    单表查询 补充一个知识点:在models.py建表是 create_time = models.DateField() 关键字参数: 1.auto_now:每次操作数据,都会自动刷新当前操作的时间 2 ...

  6. Django中常用字段

    一.Django框架的常用字段 Django ORM 常用字段和参数 常用字段 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列 ...

  7. Django orm常用字段和字段参数

    1.Object Relational Mapping(ORM) 1.1ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象 ...

  8. SQL常用字段类型

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

  9. Django中ORM常用字段类型及参数

    常用字段: <1> CharField 字符串字段, 用于较短的字符串. CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的 ...

随机推荐

  1. HDU 6006 状压dp

    Engineer Assignment Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  2. 【转载】14个你可能不知道的 JavaScript 调试技巧

    了解你的工具可以极大的帮助你完成任务.尽管 JavaScript 的调试非常麻烦,但在掌握了技巧 (tricks) 的情况下,你依然可以用尽量少的的时间解决这些错误 (errors) 和问题 (bug ...

  3. Linux下U盘、SD卡挂载与卸载

    1.手动挂载/卸载U盘.SD卡 对于ARM Linux来说,第一次使用U盘或SD时,U盘这个文件目录是不能直接进入的,我们需要对其进行挂载,然后再接下来的使用中就可以直接进行使用了.通过再网上查资料, ...

  4. mongodb 跟踪SQL语句及慢查询收集

    有个需求:跟踪mongodb的SQL语句及慢查询收集 第一步:通过mongodb自带函数可以查看在一段时间内DML语句的运行次数. 在bin目录下面运行  ./mongostat -port 端口号  ...

  5. bzoj千题计划147:bzoj1207: [HNOI2004]打鼹鼠

    http://www.lydsy.com/JudgeOnline/problem.php?id=1207 dp[i] 表示打的最后一只鼹鼠是第i只,最多能打多少只鼹鼠 输出max(dp[i]) 错解: ...

  6. 记录第一次阿里云服务器部署java web工程的经历

    起因:测试一个微信小程序,发现所有的请求要求为https的形式,开发工具忽略后手机无法测试,故尝试配置. 准备:阿里云服务器一台 域名一个(解析在服务器)     tomcat7.0.54     j ...

  7. CSS命名方法(笔记)

    划分CSS的一些方法(不同的划分方法都有利与弊,要记住,最合适项目的才是最好的): ①按功能划分:将字体的CSS存放在font.css.将控制颜色的CSS存放在color.css.将控制布局的CSS存 ...

  8. IFrame跨域处理方法-Javascript

    在漫长的前端开发旅途上,无可避免的会接触到ajax,而且一般情况下都是用在同一域下的ajax请求:但是如果请求是发生在不同的域下,请求就无法执行,并且会抛出异常提示不允许跨域请求,目前我没有找到明确的 ...

  9. 20155227 2016-2017-2 《Java程序设计》第四周学习总结

    20155227 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 继承 继承 继承是Java程序设计语言面向对象的又一重要体现,允许子类继承父类,避免重复的行 ...

  10. [NOI导刊2010提高&洛谷P1774]最接近神的人 题解(树状数组求逆序对)

    [NOI导刊2010提高&洛谷P1774]最接近神的人 Description 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某 ...