摘自 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. 压缩前端文件(html, css, js)

    1:原因 在写前端代码时, 因为要尽可能的适合阅读会加入许多注释, 空格等, 这些在开发时是必要的, 但当你要发布时, 就需要让代码更加精简, 精简压缩的同时也混淆了代码, 安全性也加强了, 可以说是 ...

  2. Python【yagmail】模块发邮件

    #步骤一:import yagmail #步骤二:实例化一个发邮件的对象username = '553637138@qq.com' #邮箱账号pwd='sa2008' #授权码mail = yagma ...

  3. [Spark]-Spark发展历程与基本概念

    Hadoop十年 找了一张Hadoop十年的生态发展图: Spark概况: Apache Spark是一个开源簇运算框架,最初是由加州大学柏克莱分校AMPLab所开发.相对于Hadoop的MapRed ...

  4. Hadoop生态圈-注册并加载协处理器(coprocessor)的三种方式

    Hadoop生态圈-注册并加载协处理器(coprocessor)的三种方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 到目前为止,大家已经掌握了如何使用过滤器来减少服务器端通过 ...

  5. Java基础-面向对象第二特征之继承(Inheritance)

    Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...

  6. java基础-迭代器(Iterator)与增强for循环

    java基础-迭代器(Iterator)与增强for循环 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Iterator迭代器概述 Java中提供了很多个集合,它们在存储元素时 ...

  7. UIView的alpha属性和hidden属性

    alpha 属性为0.0时视图完全透明,为1.0时视图完全不透明. hidden属性为YES时视图隐藏,否则不隐藏. 注意事项: 1 当视图完全透明或者隐藏时,不能响应触摸消息. 也就是alpha等于 ...

  8. Shell记录-Shell命令(find)

    Linux中的find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花 ...

  9. axios post 踩坑之 post传参

    今天在项目(vue2.0)使用axios进行post请求的时候,使用官方文档的格式传递给后台的数据是一整个json对象,参数已经传递出去了,但是后台获取不到,() 解决方法 利用aixos结合qs来解 ...

  10. LintCode 412: Candy

    LintCode 412: Candy 题目描述 有 N 个小孩站成一列.每个小孩有一个评级. 按照以下要求,给小孩分糖果: 每个小孩至少得到一颗糖果. 评级越高的小孩可以得到更多的糖果. 需最少准备 ...